Supponiamo di avere due utenti Alice e Bob e un gruppo GROUPNAME e una cartella foo , entrambi gli utenti sono membri di GROUPNAME (utilizzando Linux ed ext3).
Se salvo come utente Alice un file sotto foo , i permessi sono:-rw-r--r-- Alice Alice . Tuttavia, è possibile ottenere che ogni file venga salvato in qualche sottodirectory di foo ha i permessi -rwxrwx--- Alice GROUPNAME (es. proprietaria Alice, gruppo GROUPNAME)?
Risposta accettata:
Puoi controllare i bit di autorizzazione assegnati con umask e il gruppo creando la directory setgid a GROUPNAME .
$ umask 002 # allow group write; everyone must do this
$ chgrp GROUPNAME . # set directory group to GROUPNAME
$ chmod g+s . # files created in directory will be in group GROUPNAME
Nota che devi fare il chgrp /chmod per ogni sottodirectory; non si propaga automaticamente (cioè, directory né esistenti né create successivamente in un setgid la directory sarà setgid , anche se quest'ultimo sarà nel gruppo GROUPNAME ).
Nota anche che umask è un attributo di processo e si applica a tutti i file creati da quel processo e dai suoi figli (che ereditano umask in vigore nel loro genitore su fork() tempo). Gli utenti potrebbero aver bisogno di impostarlo in ~/.profile e potrebbe essere necessario fare attenzione a cose non correlate alla directory che richiedono autorizzazioni diverse. i moduli possono essere utili se hai bisogno di impostazioni diverse quando fai cose diverse.
Puoi controllare le cose un po' meglio se puoi usare gli ACL POSIX; dovrebbe essere possibile specificare sia una maschera di autorizzazione che un gruppo e farli propagare in modo sensato. Tuttavia, il supporto per gli ACL POSIX è alquanto variabile.