GNU/Linux >> Linux Esercitazione >  >> Linux

UNIX/Linux:nozioni di base sugli elenchi di controllo di accesso (ACL).

Perché abbiamo bisogno di ACL?

Ogni file su qualsiasi file system UNIX avrà un proprietario/gruppo e un insieme di autorizzazioni. Immagina un caso in cui più utenti devono accedere allo stesso file e gli utenti provengono da gruppi diversi. Gli elenchi di controllo di accesso ai file (FACL) o semplicemente ACL sono l'elenco di utenti/gruppi aggiuntivi e la loro autorizzazione al file.

Come sapere quando un file ha un ACL allegato

È molto facile sapere quando un file ha un ACL allegato. ls -l comando produrrebbe un output come mostrato di seguito.

# ls -l
-rw-r--r-+ 1   root   root  0  Sep  19  14:41  file

Nota il + firmare alla fine dei permessi. Ciò conferma che al file è allegato un ACL.

Visualizzazione degli ACL

Per visualizzare i dettagli delle informazioni ACL di un file, utilizza getfacl comando.

# getfacl /tmp/test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
user:sam:rwx
group::r--
mask::rwx
other:---

Nota i 3 diversi utente: linee. La prima riga elenca le autorizzazioni file standard del proprietario del file. Gli altri 2 permessi utente sono i permessi individuali per l'utente john e sam. Il campo della maschera qui si applica solo alle autorizzazioni aggiuntive che abbiamo concesso all'utente e ai gruppi. Se la maschera è impostata su rwx, le autorizzazioni di lettura, scrittura ed esecuzione verranno concesse a utenti/gruppi aggiuntivi. Se la maschera è impostata su r-x, l'autorizzazione di scrittura non sarà concessa a utenti/gruppi aggiuntivi. In generale, NON imposta mask su qualcosa di diverso da rwx. Il valore della maschera non influisce sulle autorizzazioni utente/gruppo/altri UNIX standard.

File senza ACL
Se esegui il comando getfacl su un file senza ACL, le righe aggiuntive "user:" e "mask" non verranno visualizzate e verranno mostrate le autorizzazioni file standard.

# getfacl test
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

Creazione e gestione di FACL

Il setfacl il comando viene utilizzato per impostare l'ACL sul file specificato. Per dare un accesso rw all'utente john sul file /tmp/test :

# setfacl -m u:john:rw /tmp/test

L'opzione -m dice a setfacl di modificare gli ACL sui file menzionati nella riga di comando. Invece dell'utente john possiamo avere un gruppo per avere un'autorizzazione specifica sul file :

# setfacl -m g:accounts:rw /tmp/test

È anche possibile impostare FACL per più utenti e gruppi con un singolo comando:

# setfacl -m u:john:rw,g:accounts:rwx /tmp/test

FACL predefinite nelle directory

Gli ACL predefiniti vengono creati solo nelle directory. Quando imposti gli ACL predefiniti sulle directory, a tutti i file creati all'interno di quella directory verrà assegnata automaticamente anche quella FACL predefinita.

Per creare una FACL predefinita su una directory:

# setfacl -m default:u:john:rw /accounts
# getfacl accounts/
# file: accounts/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:john:rw-
default:group::r-x
default:mask::rwx
default:other::r-x

Ora crea un nuovo file nella directory degli account ed elenca la FACL sul file:

# touch /accounts/test
# getfacl test
# file: test
# owner: root
# group: root
user::rw-
user:john:rw-
group::r-x			#effective:r--
mask::rw-
other::r--

Rimozione delle FACL

Per rimuovere FACL, usa il comando setfacl con l'opzione -x :

# setfacl -x u:john /tmp/test

Il comando precedente rimuove l'ACL per l'utente john nel file /tmp/test. Gli ACL per altri utenti/gruppi, se presenti, rimangono inalterati.

Per rimuovere tutti gli ACL associati a un file, utilizzare l'opzione -b con setfacl :

# setfacl -b /tmp/test

Backup delle FACL

Molte volte, il software di backup potrebbe non copiare i metadati relativi alla FACL sui file. In tal caso, potresti voler eseguire il backup delle informazioni FACL sui file. Ora, la FACL su tutti i file in una directory (incluse tutte le sottodirectory) può essere copiata in un unico file.

# cd /accounts
# getfacl -R * > accounts_facl        ( -R -> recursive )

Ripristino delle FACL

Quando si ripristinano i file nella directory /accounts, è necessario ripristinare le FACL associate ai file in quella directory. PER farlo usa il file di backup FACL accounts_facl insieme al –ripristino opzione :

# setfacl --restore=accounts_facl


Linux
  1. Liste di controllo accessi e unità esterne su Linux:cosa devi sapere

  2. Monitoraggio dell'accesso ai file Linux?

  3. RHEL 7 – RHCSA Notes – Creare e gestire Access Control List (ACL)

  4. Come configurare ACL (Elenchi di controllo di accesso) in Linux FileSystem

  5. Come controllare l'accesso ai file su Linux

Spiegazione degli elenchi di controllo di accesso su Linux

Comando AWK in Linux/Unix

Linux vs Unix

Comprendere le basi di UNIX / Linux Inodes con esempi

Nozioni di base sul legame Ethernet in Linux

Come rimuovere setgid (linux/unix)?