8.2. Impostazione di accesso alle ACL

Ci sono due tipi di ACL: accesso alle ACL e ACL di default. Un accesso alle ACL, è un elenco di controllo di accesso per un file specifico o per una directory. Una ACL di default può essere solo associata ad una directory; se un file all'interno della directory non ha un accesso ACL, esso emette delle regole ACL di dedfault per la directory. Le ACL di default sono facoltative.

Le ACL possono essere configurate:

  1. Per utente

  2. Per gruppo

  3. Tramite i diritti effettivi della maschera

  4. Per gli utenti che non sono nello user group per il file

La utility setfacl imposta le ACL per i file e le directory. Usare l'opzione -m per aggiungere o modificare l'ACL di un file o di una directory:

setfacl -m <rules> <files>

Le regole (<regole>) devono essere specificate nel seguente formato. Regole multiple possono essere specificate nello stesso comando se vengono separate da virgole.

u:<uid>:<perms>

Impostare l'accesso ACL per un utente. Il nome utente o UID può essere specificato. L'utente può essere qualsiasi utente valido sul sistema.

g:<gid>:<perms>

Impostare l'accesso ACL per un gruppo. Il nome del gruppo o GID può essere specificato. Il gruppo può essere qualsiasi gruppo valido sul sistema.

m:<perms>

Impostare i diritti effettivi della maschera. La maschera è l'unione di tutti i permessi del gruppo in possesso e di tutte le entry del gruppo e dell'utente.

o:<perms>

Imposta l'accesso ACL per gli utenti che non sono quelli nel gruppo per il file.

Lo spazio viene ignorato. I permessi (<perms>) devono essere una combinazione dei caratteri r, w, e x per la lettura, la scrittura e l'esecuzione.

Se un file o una directory ha già una ACL, e viene usato il comando setfacl, le regole addizionali vengono aggiunte all'ACL esistente oppure la regola esistente viene modificata.

Per esempio, per dare i permessi di scrittura e lettura all'utente tfox:

setfacl -m u:tfox:rw /project/somefile

Per rimuovere tutti i permessi per un utente, gruppo o altri, usare l'opzione -x e non specificare alcun permesso:

setfacl -x <rules> <files>

Per esempio, per rimuovere tutti i permessi dall'utente con UID 500:

setfacl -x u:500 /project/somefile