Elenchi di controllo degli accessi
La risposta diretta sono gli elenchi di controllo di accesso (ACL) . Sì, puoi trovare un controesempio, ma in pratica sono abbastanza buoni (a differenza della semplice scrivibilità di gruppo che richiede che gli utenti ci pensino continuamente). Ciò che richiedono è che l'amministratore di sistema (root) definisca i gruppi, se si desidera che i file vengano condivisi solo da un gruppo nominato (root può scegliere di delegare, ad esempio accettando gruppi da LDAP, ma questa è un'altra storia).
È necessario che gli utenti partecipanti abbiano un umask di 022. Se creano regolarmente file non leggibili dal mondo, questo schema non funzionerà. Ma se hanno un umask restrittivo, è presumibilmente perché non vogliono comunque condividere file.
Abilitazione ACL
Ubuntu non abilita gli ACL per impostazione predefinita, quindi c'è un requisito di amministrazione una tantum. Modifica /etc/fstab
utilizzando il tuo editor preferito e modifica ogni riga corrispondente a un filesystem in cui desideri condividere i file: aggiungi acl
alle opzioni. (Assicurati di non modificare altre righe e di non utilizzare un editor che avvolga le righe lunghe.) Ecco una riga di esempio con l' acl
opzione aggiunta:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Affinché l'opzione abbia effetto la prima volta, utilizzare un comando come il seguente (per ciascun file system):
sudo mount -o remount,acl /
Installa gli strumenti ACL dal acl
pacchetto.
Impostazione della directory condivisa
Per avere file condivisi dal gruppo mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Se le persone creano file e li copiano nella directory condivisa, i file saranno leggibili in tutto il mondo (a causa della umask) e chiunque nel gruppo può aggiungere e rimuovere file (perché il gruppo è scrivibile dal gruppo). Le persone non possono modificare i file degli altri, ma questa è una buona cosa o potresti incorrere subito in conflitti di modifica.
Se non si dispone di un gruppo unix, è possibile aggiungere utenti uno per uno:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Controllo della versione
Se vuoi che le persone siano in grado di modificare i file sul posto, hai anche bisogno di qualcosa per prevenire conflitti di modifica. Questo è il controllo della versione.
Non hai bisogno di tutto questo per condividere un repository git. Sai che ci sono soluzioni come la gitosi, quindi usale.