Se si vuole avere una cartella condivisa da più utenti, nella quale tutti possono inserire file e vedere/manipolare anche i file degli altri, senza problemi di diritti, la soluzione non è immediata. I diritti di creazione file per un utente loggato e/o le sue impostazioni di gruppo di default (in particolare per l'utente root) possono creare l'inconveniente che alcuni file non sono leggibili da tutti.
Per evitare questo usiamo 2 caratteristiche della gestione permessi di linux: il flag "s" (setUID) e la gestione FACL (file access control list).
- Il flag setUID, associato alle directory e ai permessi di gruppo, fa si che tutti i file (e le sottodirectory) ereditino lo stesso gruppo del padre, a prescindere dall'utente che li ha creati. Per impostare il flag usiamo il comando:
chmod g+s <dir>
- Le regole FACL associate a una directory permettono di specificare i permessi base impostati per i file e le sottodirectory create, sempre a prescindere dall'utente (in funzione della regola specificata). Per impostarli usiamo il comando:
setfacl -d -m <regola> <dir>
Con un esempio facciamo prima. Se vogliamo fare in modo che una cartella "/home/shared" sia condivisa per tutti gli utenti del gruppo "users":
chmod g+s /home/shared setfacl -d -m g::rwx /home/shared setfacl -d -m o::rx /home/shared
L'ultima riga serve solo se volete stabilire i diritti degli utenti fuori dal gruppo. Per il resto i comandi si commentano da se: il primo imposta il setUID, il secondo fa si che per qualunque utente che crea il file ("::"), i permessi di gruppo vengono impostati a "rwx" (quindi controllo totale).
2 Comments
Domanda
Inviato da Max (non verificato) il
Dipende. Se ti basta
Inviato da admin il
Aggiungi un commento