Access Control list (ACL) fornisce un meccanismo di autorizzazione aggiuntivo e più flessibile per i file system. È progettato per aiutare con i permessi dei file UNIX. ACL consente di concedere autorizzazioni per qualsiasi utente o gruppo a qualsiasi risorsa disco.
Installazione
Il pacchetto acl è una dipendenza di systemd, dovrebbe essere già installato.
Abilita ACL
Per abilitare ACL, il filesystem deve essere montato con l’opzioneacl
. È possibile utilizzare fstab per renderlo permanente sul sistema.,
C’è la possibilità che l’opzione acl
sia già attiva come opzione di montaggio predefinita sul filesystem. Btrfs fa e anche i filesystem Ext2/3/4. Utilizzare il seguente comando per verificare ext* partizioni formattate per l’opzione:
# tune2fs -l /dev/sdXY | grep "Default opzioni di montaggio:"
Default opzioni di montaggio: acl, user_xattr
controllare Anche che il valore di default l’opzione per il montaggio non viene annullato, in tal caso si vedrà noacl
nel /proc/mounts
nella riga corrispondente.,
È possibile impostare il valore predefinito di opzioni per il montaggio di un file system utilizzando il tune2fs -o option partition
comando, per esempio:
# tune2fs -o acl /dev/sdXY
Utilizzando il valore predefinito di opzioni di montaggio invece di una voce /etc/fstab
è molto utile per le unità esterne, tale partizione viene montata con acl
opzione anche su altre macchine Linux. Non è necessario modificare /etc/fstab
su ogni macchina.
-
acl
è specificato come opzione di montaggio predefinita quando si crea un file system ext2/3 / 4., Questo è configurato in/etc/mke2fs.conf
. - Le opzioni di montaggio predefinite non sono elencate in
/proc/mounts
.
Utilizzo
Set ACL
L’ACL può essere modificato utilizzando il comando setfacl.
--test
.,
Per impostare le autorizzazioni per gli altri:
# setfacl -m "other:permissions" <file/dir>
Per consentire a tutti i nuovi file o directory per ereditare voci dalla directory principale (questo non influenzerà i file che vengono copiati in una directory):
# setfacl -dm "entry" <dir>
Per rimuovere una voce specifica:
# setfacl -x "entry" <file/dir>
rimuovere le voci di default:
# setfacl -k <file/dir>
rimuovere tutte le voci (voci del proprietario, gruppo e altri vengono mantenuti):
# setfacl -b <file/dir>
L’accuratezza fattuale di questo articolo o sezione è in discussione.,
--mask
(che è stata presa da setfacl(1)) è stata determinata come imprecisa, ma anche la nuova nota non sembra corretta. Vedere la pagina di discussione per i dettagli. (Discuss in Talk: Access Control Lists # ACL mask entry) --mask
. La voce maschera indica le autorizzazioni massime consentite per gli utenti (diversi dal proprietario) e per i gruppi., A meno che non sia impostato esplicitamente, questo corrisponderà alle autorizzazioni del gruppo predefinito. Per chiarire cosa significa, supponiamo che il gruppo che possiede una directory abbia i permessi rx. Se aggiungi un utente o un gruppo ACL con autorizzazioni rwx, le autorizzazioni effettive di questo utente o gruppo saranno rx. La ragione di ciò è che non ci sono sorprese quando un file di un sistema che non supporta ACL viene reso disponibile su un sistema che lo fa..-R
.,c
# file: abc# owner: qualcuno# group: someoneuser::rw-utente:johnny:r-xgroup::r--mask::r-xother::r--
Rimuovere tutte le voci ACL:
# setfacl -b abc
Controllare le autorizzazioni:
# getfacl abc
# file: abc# owner: qualcuno# group: someoneuser::rw-group::r--altri::r--
Output del comando ls
Si noterà che c’è un ACL per un determinato file perché è esposto un +
(segno più), dopo la sua Unix permessi di uscita di ls -l
.,
$ ls - l / dev / audio
crw-rw----+ 1 radice audio 14, 4 novembre. 9 12:49 /dev/audio
$ getfacl /dev/audio
Concessione di permessi di esecuzione per privati file su un server web
La tecnica seguente viene descritto come un processo, come un server web può essere concesso l’accesso ai file che si trovano nella home directory di un utente, senza compromettere la sicurezza, dando tutto il mondo gratuita.,
Nel seguito assumiamo che il server web venga eseguito come utentehttp
e gli concediamo l’accesso alla directory home digeoffrey
/home/geoffrey
.
Il primo passo è concedere le autorizzazioni di esecuzione per l’utente http
:
# setfacl -m "u:http:--x" /home/geoffrey
Dal momento che l’utente http
è ora in grado di accedere ai file in /home/geoffrey
, gli altri non hanno più bisogno di accesso:
# chmod o-rx /home/geoffrey
Uso getfacl
per verificare le modifiche:
$ getfacl /home/geoffrey
Come sopra output mostra, other
‘s non hanno più alcuna autorizzazione, ma l’utente http
è ancora in grado di accedere al file, quindi la sicurezza potrebbe essere considerato il maggiore.,
Vedi anche
- getfacl(1)
- setfacl(1)
- Elenchi di controllo di accesso POSIX su Linux
- Come impostare i permessi di file predefiniti per tutte le cartelle / file in una directory?
Leave a Reply