Implementazione delle ACL con Active Directory
Per completare il discorso iniziato nell’articolo Samba Complete Active Directory Domain Integration vediamo ora come gestire gli accessi multipli un po’ come si fa con i permessi su Windows.
Innanzitutto occorre installare il pacchetto acl:
sudo apt-get install acl
Ora andiamo a modificare il tipo di mount della cartella che ci interessa gestire, quindi editiamo /etc/fstab:
sudo nano /etc/fstab
E alla riga che ci interessa aggiungiamo il parametro acl, esempio:
/dev/sdb1 /media/shared ext4 defaults,acl 0 0
Alcuni dicono che basta rimontare il percorso altri che serve il riavvio, nel dubbio se ci costa poco riavviamo.
Ora passiamo alla parte di configurazione delle cartelle, per esempio andiamo a dare alla cartella common i permessi completi agli utenti del dominio pino e pippo e in sola lettura al gruppo vendite:
sudo setfacl -m u:mydomain+pino:rwx /media/shared/common
sudo setfacl -m u:mydomain+pippo:rwx /media/shared/common
sudo setfacl -m g:mydomain+vendite:r /media/shared/common
e se ci serve che questi permessi siano ricorsivi anche nelle sotto cartelle:
sudo setfacl -m d:u:mydomain+pino:rwx /media/shared/common
sudo setfacl -m d:u:mydomain+pippo:rwx /media/shared/common
sudo setfacl -m d:g:mydomain+vendite:r /media/shared/common
In caso si stesse aggiungendo una regola su una struttura di file e cartelle già esistente e si vuole che la regola venga applicata a tutto serve il parametro -R:
sudo setfacl -R -m u:mydomain+pino:rwx /media/shared/common
sudo setfacl -R -m d:u:mydomain+pino:rwx /media/shared/common
Ora andiamo a configurare i permessi su samba:
sudo nano /etc/samba/smbd.conf
E sulla condivisione che ci interessa mettiamo per esempio:
write list = mydomain+pino,mydomain+pippo
read list = @mydomain+vendite
Se avessimo spazi usiamo gli apici:
read list = @"mydomain+domain users"
E riavviamo samba:
sudo service restart smbd
Ora volessimo rimuovere un permesso usiamo l’opzione -x:
sudo setfacl -x u:mydomain+pippo /media/shared/common
sudo setfacl -x d:u:mydomain+pippo /media/shared/common
sudo setfacl -x g:mydomain+vendite /media/shared/common
sudo setfacl -x d:g:mydomain+vendite /media/shared/common
Se invece volessimo rimuovere tutti i permessi in un colpo solo:
sudo setfacl -b /media/shared/common
Rimuovendo poi anche l’opzione nel smbd.conf e riavviando di nuovo samba.
In caso volessimo controllare che regole sono attive su un file o cartella usiamo il invece comando getfacl:
getfacl /media/shared/common