Risposte:
Poiché non è possibile "eseguire" una directory, il bit di esecuzione è stato utilizzato in modo migliore. Il bit di esecuzione in una directory consente di accedere agli elementi all'interno della directory, anche se non è possibile elencare il contenuto delle directory.
$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!
Dalla chmod
manpage:
Le lettere rwxXst selezionano i bit della modalità file per gli utenti interessati: leggi (r), scrivi (w), esegui (o cerca directory) (x) , esegue / cerca solo se il file è una directory o ha già i permessi di esecuzione per alcuni utente (X), impostare l'ID utente o gruppo sull'esecuzione (i), flag di cancellazione limitato o bit appiccicoso (t).
Le directory (in genere non sono chiamate cartelle in * nix) hanno un significato diverso per i bit di autorizzazione rispetto ai normali file.
Per le directory, write consente di creare nuovi file al suo interno.
Leggi consente di elencare i file al suo interno.
Execute ti permette di inserirlo e accedere ai file (o altre directory) all'interno.
Le autorizzazioni di esecuzione su una directory consentono di attraversarlo, per l'utilizzo delle risorse contenute al suo interno.
Il bit "esegui" in realtà significa "ricerca" quando applicato alle directory (da man chmod
). Ciò sembra ragionevole poiché execute non ha alcun significato per una directory.
Il x
bit in una cartella si riferisce all'indicizzazione / ricerca / elenco delle directory; nessuno di questi è possibile se si mantiene quel bit basso.
Ecco un esempio del suo utilizzo: se vuoi avere un utente con permessi di lettura limitati su ogni directory tranne la sua home, diciamo /home/dummy
, allora devi creare /
e /home
avere il x
bit impostato, altrimenti non può nemmeno arrivare alla sua home directory.
cd
) la inserisci (esegui).