Come posso impedire ad altri di vedere il contenuto della mia home directory, ad eccezione della cartella pubblica?


2

Su Mac OS X, è relativamente facile impedire alle persone di vedere i file contenuti nella tua home directory: chmod 700 ~

Mi piacerebbe eseguire una variazione di questo. Lo voglio in modo che quando le persone aprono / Users / stalepretzel, vedono solo una cartella elencata: Pubblico. Da lì, mi piacerebbe impostare le autorizzazioni di Pubblico in modo che le persone possano entrare in quella cartella e leggere tutto ciò che non è specificato diversamente.

Ancora una volta, per chiarire, mi piacerebbe che un altro utente non amministratore potesse eseguire:

$ cd /Users/stalepretzel; ls
Public
$ cd Public
All     the     contents     of
my      public  folder

Risposte:


3

Temo che questo non sia possibile. Un utente non può accedere a nessun file o cartella in qualsiasi punto dell'albero di una directory per la quale non dispone delle autorizzazioni di lettura. Se l'utente ha i permessi di lettura per una directory (e tutte le sue superdirectory), può farlo ls e vedere tutti i file che contiene.

Potrebbe non essere abbastanza ordinato, ma se vuoi impedire agli utenti di farlo ls la tua directory home che dovrai creare Public da qualche parte al di fuori di ~. Se è più facile per te accedere al tuo elenco pubblico ~/Public, crea un link simbolico (ad es. ln -s ~/Public /Users/Shared/stalepretzel ).


Ah, buona idea Probabilmente accetterò questo se non ci saranno altri post al più presto. Grazie!
stalepretzel

1

Non penso che tu possa fare qualcosa di meglio di (cose standard su Unix):

$ chmod 711 ~/
$ chmod g-rx,o-rx ~/*
$ chmod 755 ~/Public

per rendere la directory home traversabile, ma illeggibile, e qualsiasi altra cosa che non sia accessibile a "Pubblico".

[Riconoscimento permesso Unix - I bit di esecuzione su una directory consentono l'attraversamento, i bit di lettura consentono di vedere i contenuti.]

Sfortunatamente questo non permette a nessuno di vedere che la tua cartella pubblica esista - e non c'è modo di farlo, perché l'esistenza della cartella pubblica dipende dalla possibilità di leggere la tua home directory poiché è il "file" che la contiene (nomi sono nelle directory madri, le autorizzazioni fanno parte dell'inode del file).


-1

Apri la tua home directory da leggere:

$ chmod 0744 ~

e nascondi tutto lì dentro:

$ chmod 700 ~/*

quindi apri solo l'elenco Pubblico:

$ chmod 0744  ~/Public

Nota: modificato l'ordine dei comandi per renderlo corretto


Questo non funziona. Ciò consente alle persone di visualizzare un elenco di tutta la mia home directory (errata) e non consente alle persone di visualizzare il contenuto di, o di entrare, nella directory pubblica (non valida). Inoltre, gli utenti non sono in grado di aprire file contenuti nella mia directory pubblica se conoscono le loro posizioni (errate). Uh Oh!
stalepretzel

L'idea è di aprire la tua home directory, quindi nascondere tutto al suo interno, quindi aprire solo la cartella pubblica. Dovrai ricordarti di nascondere qualsiasi nuovo file / dir in casa non in Pubblico, ma fa quello che hai chiesto. Ho modificato l'ordine dei comandi per renderlo più chiaro
Robert Swisher
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.