Quando si applicano i permessi alle directory su Linux, i bit dei permessi hanno significati diversi rispetto ai normali file.
- Il bit di lettura (
r
) consente all'utente interessato di elencare i file all'interno della directory - Il bit di scrittura (
w
) consente all'utente interessato di creare, rinominare o eliminare file all'interno della directory e modificare gli attributi della directory - Il bit di esecuzione (
x
) consente all'utente interessato di entrare nella directory e accedere ai file e alle directory al suo interno - La parte appiccicosa (
T
ot
se il bit di esecuzione è impostato per altri) afferma che i file e le directory all'interno di quella directory possono essere eliminati o rinominati solo dal loro proprietario (o root)
Innanzitutto, pensa:cos'è una directory? È solo un elenco di elementi (file e altre directory) che risiedono all'interno. Quindi:directory =lista di nomi.
Leggi bit =Se impostato, puoi leggere questo elenco. Quindi, per esempio, se hai una directory chiamata poems
:
- Puoi
ls poems
e otterrai un elenco di oggetti che vivono all'interno (-l
non rivelerà alcun dettaglio!)). - Puoi utilizzare il completamento della riga di comando, ad esempio
touch poems/so <TAB> poems/somefile
. - Non puoi fare
poems
la tua directory di lavoro (ad esempiocd
dentro).
Scrivi bit =Se impostato, puoi modificare questo elenco, ad esempio puoi {aggiungere, rinominare, eliminare} nomi su di esso. Ma! Puoi effettivamente farlo solo se è impostato anche il bit di esecuzione.
Esegui bit =Rendi questa directory la tua directory di lavoro, ad esempio cd
dentro. Hai bisogno di questa autorizzazione se vuoi:
- accedere (leggere, scrivere, eseguire) agli elementi che vivono all'interno.
- modificare l'elenco stesso, ovvero aggiungere, rinominare, eliminare nomi su di esso (ovviamente il bit di scrittura deve essere impostato sulla directory).
Caso interessante 1 :Se si dispone dei permessi di scrittura + esecuzione su una directory, è possibile {cancellare, rinominare} gli elementi all'interno anche se non si dispone dei permessi di scrittura su tali elementi. (usa lo sticky bit per impedirlo)
Caso interessante 2 :Se si dispone dell'autorizzazione di esecuzione (ma non di scrittura) su una directory E si dispone dell'autorizzazione di scrittura su un file all'interno, non è possibile eliminare il file (perché comporta la rimozione dall'elenco). Tuttavia, puoi cancellarne il contenuto, ad es. se è un file di testo puoi usare vi per aprirlo ed eliminare tutto. Il file sarà ancora lì, ma sarà vuoto.
Sommario:
Leggi bit =Puoi leggere i nomi sulla lista.
Scrivi bit =È possibile {aggiungere, rinominare, eliminare} i nomi nell'elenco SE è impostato anche il bit di esecuzione.
Esegui bit =Puoi rendere questa directory la tua directory di lavoro.
PS:L'articolo menzionato da Kusalananda è una buona lettura.
Ho preparato questa tabella con tutti i permessi possibili ei loro effetti pratici.
(*) Solo nomi di file :altri attributi come dimensione o data non sono accessibili. Per esempio. puoi usare il tasto tab per il completamento automatico ma non il comando ls.
Alcuni pensieri :
- Con X disattivato , R e W sono per lo più inutili.
- X da solo disabilitando RW ti dà un falso senso di sicurezza poiché potresti leggere e scrivere ciecamente i contenuti dei file e accedere alle sottodirectory. Dovresti assicurarti che tutti i figli diretti della directory abbiano permessi espliciti.
- Raramente utilizzerai valori diversi da:
- 0 :Nessun accesso.
- 1 :Accesso minimo che consente l'attraversamento.
- 5 :Consente la lettura/scrittura, ma non altera la struttura dell'albero delle directory stesso.
- 7 :Accesso completo.