Le autorizzazioni di accesso Linux tradizionali per file e directory consistono nell'impostare una combinazione di autorizzazioni di lettura, scrittura ed esecuzione per il proprietario del file o della directory, un membro del gruppo a cui è associato il file o la directory e tutti gli altri (altro). Gli elenchi di controllo degli accessi (ACL) forniscono un meccanismo di controllo degli accessi più dettagliato rispetto a queste tradizionali autorizzazioni di accesso Linux.
Installazione dell'ACL
Prima di utilizzare gli ACL per un file o una directory, installa il pacchetto acl:
# yum install acl
Configurazione dell'ACL su un file system
Anche il file system contenente il file o la directory deve essere montato con il supporto ACL. La seguente è la sintassi per montare un file system ext3 locale con supporto ACL:
# mount -t ext3 -o acl [device-name] [mount-point]
Ad esempio:
# mount -t ext3 -o acl /dev/mapper/VolGroup00-LogVol00 /data
Se la partizione è elencata nel file /etc/fstab, includi l'opzione acl:
# vi /etc/fstab LABEL=/data /data ext3 acl 0 0
Regole ACL
Un ACL è costituito da un insieme di regole che specificano come un utente o un gruppo può accedere al file o alla directory a cui è associato l'ACL. Esistono due tipi di regole ACL:
- accedi agli ACL :Specifica le informazioni di accesso per un singolo file o directory
- ACL predefiniti :Riguarda solo una directory. Specifica le informazioni di accesso predefinite per qualsiasi file all'interno della directory che non dispone di un ACL di accesso.
Visualizza ACL sui file
Usa la getfacl utilità per visualizzare l'ACL di un file. Quando un file non ha un ACL, visualizza le stesse informazioni di "ls –l", sebbene in un formato diverso. Ad esempio, il test del file non ha un ACL:
# ls –l test -rw-rw-r-- 1 oracle oracle 25 Mar 5 10:10 test
Esempio di output getfacl del file di test:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- group::rw- other::r--
Configurazione di ACL su file
Usa il setfacl utilità per aggiungere o modificare una o più regole nell'ACL di un file. La sintassi è:
# setfacl -m [rules] [files]
Le regole sono nella forma seguente:
- u:nome:autorizzazioni :imposta l'ACL di accesso per un utente (nome utente o UID)
- g:nome:autorizzazioni :imposta l'ACL di accesso per il gruppo (nome gruppo o GID)
- m:autorizzazioni :Imposta la maschera dei diritti effettivi. Questa è l'unione di tutte le autorizzazioni del gruppo proprietario e di tutte le voci utente e gruppo.
- o:autorizzazioni :imposta l'ACL di accesso per tutti gli altri (altri)
Le autorizzazioni sono le tradizionali r, w e x rispettivamente per lettura, scrittura ed esecuzione. L'esempio seguente aggiunge una regola all'ACL per il file di test che concede all'utente Oracle l'autorizzazione di lettura e scrittura per quel file:
# setfacl -m u:oracle:rwx test
L'output di getfacl include la regola ACL:
# getfacl test # file: test # owner: oracle # group: oracle user::rw- user:oracle:rwx group::rw- mask::rwx other::r--
Quando un file ha un ACL, 'ls –l' mostra un segno più (+ ) seguendo i permessi:
# ls –l test -rw-rwxr--+ 1 oracle oracle 25 Mar 5 10:10 test
Rimozione degli ACL dei file
Usa –x opzione senza specificare alcuna autorizzazione per rimuovere le regole per un utente o un gruppo.
# setfacl –x u:oracle test
Per rimuovere l'ACL stesso, utilizza -b opzione:
# setfacl –b test
Impostazione degli ACL predefiniti
Per impostare un ACL predefinito, aggiungi d: prima della regola e specificare una directory invece del nome di un file:
# setfacl -m d:o:rx /shareUNIX/Linux:nozioni di base sugli elenchi di controllo di accesso (ACL)