Differenza tra chmod vs ACL


13

Capisco chmode chowncome funzionano i bit di autorizzazione, ma c'è un altro sistema di autorizzazioni all'interno di Linux, ACLcon setfacle getfacl, quindi questo mi fa meravigliare.

Qual è la differenza tra questi due sistemi di controllo delle autorizzazioni? Interferiscono l'uno con l'altro?

Risposte:


7

Uno non è migliore dell'altro, sono solo metodi e modi di pensare diversi.

È possibile utilizzare entrambi i sistemi di autorizzazione sullo stesso percorso senza problemi.

Interferiscono l'uno con l'altro quando si modificano il proprietario, il gruppo proprietario e altre autorizzazioni: quando si imposta il valore corrente per questi da setfacl, imposterà effettivamente l'autorizzazione posix, non quella ACL.

Le autorizzazioni Posix consentono solo il proprietario, il gruppo proprietario e l'autorizzazione "tutti" mentre ACL consente più utenti e gruppi "proprietari". ACL consente inoltre di impostare le autorizzazioni predefinite per i nuovi file in una cartella.

Puoi aggiungere più gestione dei permessi sopra entrambi con apparmor o selinux per un controllo più rigoroso.


1
Sono corretto supponendo che quando corro ls -lvedrò solo le autorizzazioni posix e quelle ACL che limitano ulteriormente il file non verranno mostrate? O le autorizzazioni posix saranno rispettate a prescindere?
mFeinstein,

3
@mFeinstein Depends. Sotto Linux, ls -linserisce una +alla fine dei caratteri delle autorizzazioni per indicare che sono presenti ACL. Se sono presenti ACL, le autorizzazioni di base non raccontano l'intera storia: ACL sostituisce le autorizzazioni POSIX.
Gilles 'SO- smetti di essere malvagio'

Oh grande! Questo +almeno mi impedisce di mettermi alla sprovvista
m

3

Le classiche autorizzazioni Unix impostate da chmod (lettura / scrittura / esecuzione, utente / gruppo / altro) sono esistite per molto più tempo di ACL. Se ACL fosse esistito dall'inizio, allora non ci sarebbe un chmod come lo conosciamo. Tuttavia, poiché chmod esiste da molto tempo, molte applicazioni lo chiamano, molti formati di archivio supportano le autorizzazioni classiche, ecc. È possibile esprimere le autorizzazioni chmod con ACL; agiscono come una sorta di punto di partenza per l'ACL.

Vedere Precedenza dell'utente e del proprietario del gruppo nelle autorizzazioni dei file e Precedenza di ACLS quando un utente appartiene a più gruppi per un trattamento più dettagliato di come funziona il controllo degli accessi in presenza di ACL.

Il chmodcomando controlla anche alcuni flag che in realtà non sono permessi, ma sono spesso chiamati permessi: setuid, setgid e il sticky bit . Queste non sono in realtà autorizzazioni poiché non influiscono su quali accessi sono autorizzati sul file, ma su come funzionano determinate operazioni sul file dopo che sono state autorizzate. Non c'è niente di simile con ACL.


Quindi, per capire veramente il permesso di un file, devo controllare sia l'ACL che ls -l?
mFeinstein,

C'è un modo per vedere se ci sono autorizzazioni specifiche ACL su un file / directory?
mFeinstein,

@mFeinstein Verifica se le autorizzazioni visualizzate da lshanno un extra +alla fine oppure esegui il getfaclcomando per visualizzare tutte le autorizzazioni, incluso ACL.
Gilles 'SO- smetti di essere cattivo'

1
Giusto getfacl myFile?
mFeinstein,

1
Sì, getfacl sul percorso che si desidera verificare.
Zulgrib,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.