Elenchi di controllo degli accessi in Ubuntu

Elenchi di controllo degli accessi in Ubuntu
Gli account utente vengono creati con una determinata serie di privilegi e diritti predefiniti su file e servizi di sistema. D'altra parte, esistono gruppi per condividere file e cartelle tra gli utenti. In genere, quando vengono creati gli account utente, possono essere assegnati a gruppi alternativi. Tuttavia, ci sono momenti in cui potresti non voler assegnare un determinato utente a un particolare gruppo, ma allo stesso tempo, potrebbe essere necessario condividere file/cartelle con quell'utente specifico. Qui è dove gli elenchi di controllo degli accessi (ACL) entrano nella foto. In questo tutorial, impareremo gli elenchi di controllo degli accessi in Ubuntu.

Elenchi di controllo degli accessi (ACL)

Gli elenchi di controllo degli accessi (ACL) ci consentono di perfezionare il controllo dell'accesso. In altre parole, supponiamo che l'utente Sara abbia bisogno di accedere a una singola cartella di proprietà di Kalyani. Tecnicamente, potremmo assegnare Sara al gruppo di Kalyani, ma ciò significherebbe che Sara avrebbe accesso a più di cui ha bisogno e supponiamo ulteriormente che Kalyani abbia file sensibili che non vuole che Sara legga, scriva o esegui. È qui che gli elenchi di controllo degli accessi o gli ACL entrano nella foto. In teoria possiamo, in teoria, confondere con le autorizzazioni, ma gli ACL ci consentono di dare accessi diversi a utenti diversi e dare accesso senza dover fare casino con le autorizzazioni di base effettive del file o della cartella.

Visualizzazione delle autorizzazioni attuali

Utilizziamo il comando GETFACL (Get File Access Control) per visualizzare le autorizzazioni ACL correnti.

getfacl cartella di file

Supponiamo di creare una cartella chiamata Secret con due sottodirectory e 5 file. Supponiamo inoltre di voler visualizzare le autorizzazioni ACL nella cartella segreta.

getfacl segreto

Ciò significa che il proprietario dei file e della cartella, Kalyani, appartenente al gruppo Kalyani, ha letto, scrivere ed eseguire le autorizzazioni. Tutti gli altri, tuttavia, non hanno alcun permesso.

Assegnazione delle autorizzazioni perfezionate dall'utente

Mingertura delle autorizzazioni con ACL viene eseguita utilizzando il comando setFacl. L'interruttore -m, in particolare, viene utilizzato per modificare le autorizzazioni.

setfacl -m u: nome utente: nome file per autorizzazioni

L'U indica che la modifica è per un utente e non per un gruppo. Dopo il colon, si scriveva il nome utente per il quale viene concesso l'autorizzazione e il permesso concesso. Le autorizzazioni sono le stesse di quelle disponibili per CHMOD: leggi, scrivi ed eseguono. Infine, scriviamo il nome file per il quale viene applicata l'autorizzazione.

Ad esempio, supponiamo che desidero concederle pieno accesso a questa cartella segreta all'utente Sara, quindi scrivo:

setfacl -m u: sara: rwx segreto

Ora, se accedessimo a Sara, avremmo letto, scritto ed eseguito l'accesso alla cartella "Secret". Ora, intendiamoci, ho impostato un permesso di 770 alla directory iniziale. Questo permesso è stato mantenuto, ma un'eccezione alla regola è stata aggiunta utilizzando gli elenchi di controllo degli accessi. Se avessi un'altra cartella chiamata "Kali" con il permesso 770 di proprietà di Kalyani, l'utente Sara non sarebbe in grado di toccarlo. In effetti, direbbe "autorizzazione negata".

Inoltre, un punto da notare è che una volta che il file viene modificato come ACL, c'è un segno più accanto quando lo elenchi. In questo caso, come puoi vedere, dice drwxrwx-+ per la cartella chiamata segreta. Il segno più implica che è stato modificato con ACLS.

Dopo aver impostato ACLS, viene anche creata una maschera. La maschera è l'autorizzazione massima che un utente o un gruppo ACL possono potenzialmente avere su una directory o un file.

Assegnare i gruppi per autorizzazioni perfezionate

Proprio come assegnare agli utenti autorizzazione speciale, possiamo anche assegnare ai gruppi un permesso speciale. Ciò significa che possiamo mantenere le autorizzazioni di base così com'è e assegnare un particolare gruppo aggiuntivo utilizzando ACL.

setfacl -m g: group_name: nome file per autorizzazioni

Ex:

setfacl -m g: John: r segreto

In questo caso, stiamo dando al gruppo John Read Autorizzazione alla cartella segreta. Ciò significa che tutti i membri del gruppo John avranno il permesso di leggere la cartella segreta e solo la cartella segreta. Tutto il resto sarà sotto blocco e chiave.

Incarico ricorsivo

La cartella segreta è stata progettata con 3 file direttamente in essa e 2 sotto-directory, ognuna con un singolo file al suo interno.

Quando abbiamo assegnato le autorizzazioni per l'utente Sara e Group John, non l'abbiamo fatto in modo ricorsivo, quindi controlliamo le autorizzazioni ACL delle sotto-directory attualmente (dopo aver assegnato le autorizzazioni alla directory segreta).

Come puoi vedere, le autorizzazioni ACL si sono applicate solo alla directory segreta e non alle sotto-direzione. Ciò significa che l'utente Sara e il gruppo John non hanno le autorizzazioni fornite sulle sotto-direzione! In questo caso, se vogliamo dare autorizzazioni all'intera directory (comprese le sotto-directory), dobbiamo eseguire un incarico ricorsivo. Usiamo l'interruttore -r per farlo.

setfacl -r -m u: nome utente: nome file per autorizzazioni

Ex:

setfacl -r -m u: sara: rwx segreto

Eliminazione delle autorizzazioni perfezionate

Potresti anche voler revocare le autorizzazioni fornite, ed è altrettanto facile da fare come darle. Si utilizza l'interruttore -x anziché l'interruttore -m per revocare le autorizzazioni.

Per rimuovere una voce specifica:

setfacl -x u: nome utente
setfacl -x g: file filaname group_

In questo caso, avrei scritto:

setfacl -x u: sara segreta
setfacl -x g: John segreto

Per rimuovere tutte le voci in un colpo:

setfacl -b nome file

Per esempio:

setfacl -b segreto

Questo, tuttavia, non rimuove i diritti sulle sotto-direzione. Al fine di rimuovere i diritti dalle sotto-direzione, è necessario utilizzare la ricorsione.

setfacl -r -b segreto

Riepilogo

Tutto ciò che abbiamo imparato si riduce a questo:

Per visualizzare le autorizzazioni ACL:

FileName getFacl

Per impostare le autorizzazioni ACL:

setfacl nome del file

Opzioni:
-M, -Modify Modifica ACL
-X, -Remove Rimuovi l'ingresso ACL
-b, -remove -tutti rimuovi tutte le voci ACL
-R assegnazione ricorsiva

Iscrizione:
U: Nome utente: autorizzazioni per gli utenti
G: Group_name: autorizzazioni per gruppi

Sebbene CHMOD esista per concedere le autorizzazioni per file e cartelle, non è selettivo. Non può concedere privilegi diversi a utenti diversi. Inoltre, ci sono momenti in cui non si vuole aggiungere persone a caso ai gruppi. Gli elenchi di controllo ACL o Access sono stati inventati solo per questo tipo di occasione. Può fornire agli utenti o ai gruppi specifici l'accesso a file e/o cartelle specifici. In questo tutorial, abbiamo imparato a fornire a utenti e gruppi autorizzazioni speciali, assegnare ricorsivamente le autorizzazioni e revocare le autorizzazioni. Quindi vai avanti e perfeziona le autorizzazioni su file e cartelle da qui in poi!

Codice felice!