Linux shell: impostare una cartella condivisa dove tutti i file sono modificabili da gruppo

 

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).

Commenti

  1. Max ·

    Non basta solo:
    chmod g+s

    ??

  2. admin ·

    Dipende. Se ti basta impostare gli owner/gruppi, allora si.
    Ma se vuoi anche impostare i diritti associati (ad esempio perchè di base non vengono dati i permessi di gruppo, e quindi verrebbe creata una sottocartella non utilizzabile da altri utenti di quel gruppo), servono anche gli altri comandi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I commenti vengono pubblicati dopo la moderazione.