GNU/Linux >> Linux Esercitazione >  >> Cent OS

Centos:come vengono elaborate le autorizzazioni Acl e in quale ordine si applicano a una determinata azione dell'utente?

CentOS 6.4

Sto cercando di capire meglio come vengono elaborate le regole ACL del filesystem e in quale ordine si applicano le regole ACL.

Ad esempio, supponiamo che gli utenti bob e joe appartengano a un gruppo chiamato vendite. Diciamo anche che ho un documento di vendita con i seguenti dettagli:

[[email protected] ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

La mia domanda è:come vengono elaborate le autorizzazioni in un esempio come questo e quali privilegi di accesso hanno la precedenza?

C'è solo una ricerca dall'alto verso il basso e qualunque regola corrisponda per prima è quella che si applica?

Oppure Linux impone l'accesso in base a qual è la regola più specifica per l'utente in questione? O forse la regola più restrittiva e applicabile ha la precedenza?

Risposta accettata:

Questo è un argomento piuttosto ampio e un po' troppo da trattare qui. Ti rimando al whitepaper POSIX Access Control Lists su Linux messo insieme da Andreas Grünbacher dei SuSE Labs. Fa un ottimo lavoro nel trattare l'argomento e scomporlo in modo da capire come funzionano gli ACL.

Il tuo esempio

Ora diamo un'occhiata al tuo esempio e scomponiamolo.

  • gruppo (vendite)
  • membri del gruppo di vendita (bob, joe)

Ora analizziamo i permessi sul file /home/foo/docs/foo.txt . Gli ACL incapsulano anche le stesse autorizzazioni con cui la maggior parte delle persone dovrebbe avere familiarità su Unix, principalmente i bit Utente, Gruppo e Altro. Quindi estraiamo prima quelli.

user:: r--
group::r--
other::---

Questi in genere apparirebbero così in un ls -l :

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

Puoi vedere chi possiede il file e qual è il gruppo con queste righe ACL:

# owner: jane
# group: executives

Quindi ora entriamo nel nocciolo degli ACL:

user:bob:rw-
user:joe:rwx
group:sales:rwx

Questo mostra quell'utente bob ha rw , mentre l'utente joe ha rwx . C'è anche un gruppo che ha anche rwx simile a Joe. Queste autorizzazioni sono come se la colonna utente nel nostro ls -l l'output aveva 3 proprietari (jane, bob e joe) e 2 gruppi (dirigenti e vendite). Non c'è distinzione se non sono ACL.

Infine la mask riga:

mask::rwx

In questo caso non stiamo mascherando nulla, è spalancato. Quindi, se gli utenti bob e joe hanno queste righe:

user:bob:rw-
user:joe:rwx

Allora quelli sono i loro permessi effettivi. Se la maschera fosse così:

mask::r-x

Quindi i loro permessi effettivi sarebbero così:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

Questo è un potente meccanismo per limitare le autorizzazioni concesse in modo all'ingrosso.

Correlati:Debian – Come arricciare il contenuto completo della pagina web?

NOTA: Il proprietario del file e altri permessi non sono interessati dall'effettiva maschera dei diritti; tutte le altre voci sono! Quindi rispetto alla maschera, i permessi ACL sono cittadini di seconda classe rispetto ai tradizionali permessi Unix.

Riferimenti

  • getfacl(1) – Pagina man di Linux
  • Elenchi di controllo accessi POSIX su whitepaper Linux

Cent OS
  1. Registri Docker:cosa sono e come usarli (con esempi)

  2. Come creare ed eliminare un gruppo di utenti in Linux

  3. Come creare un utente Sudo su Rocky Linux e CentOS

  4. Precedenza dell'utente e del proprietario del gruppo nelle autorizzazioni dei file?

  5. Come gestire le autorizzazioni/proprietà di file e directory in Linux

Cos'è Umask e come usarlo

Come aggiungere un utente a un gruppo su RHEL 8 / CentOS 8

Come aggiungere ed eliminare utenti su CentOS 8

Come aggiungere ed eliminare utenti su CentOS 7

Come abilitare la quota disco per utenti e gruppi su CentOS 7 / RHEL 7

Come aggiungere e rimuovere utenti in CentOS 8