Tutti i sistemi Unix hanno una gestione standard dei permessi sui file, che rispecchia la natura di sistema operativo multiutente.
I permessi possono essere di lettura, scrittura e esecuzione e vengono differenziati sulla base della natura dell'utente rispetto al file o directory:
- utente proprietario owner del file
- gruppo proprietario owner group del file
- gli altri utenti others, che sono l'owner e non appartegono all'owner group.
Il permesso di esecuzione è necessario per poter accedere a delle directory e, ovviamente, permette l'esecuzione di file (script shell, perl, php, cgi; programmi binari compilati).
Per visualizzare i permessi di un file basta usare il comando ls -l
che per ogni file da un output simile a:
-rwxr-xr-- 1 mark admins 77266 Dec 13 17:18 /bin/command.sh
La prima colonna, composta da 10 caratteri, descrive i permessi sul file /bin/command.sh.
Il primo carattere (nell'esempio: -) identifica il tipo di file (directory, pipe, block o char device, symlink...);
I successivi 3 caratteri identificano i permessi in lettura/scrittura/esecuzione dell'owner di /bin/command.sh (in questo caso l'owner mark ha tutti i permessi sul file: rwx );
I successivi 3 identificano i permessi del gruppo owner di /bin/command.sh (in questo caso il gruppo admins ha permesso di lettura ed esecuzione sul file: r-x );
I successivi 3 identificano i permessi di tutti gli altri utenti del sistema (in questo caso hanno solo il permesso di lettura: r-- ).
Le successive colonne nell'output di ls -l indicano l'owner, il gruppo, la dimensione in byte, la data di ultima modifica e il nome del file.
Per modificare i permessi dei file si usa il comando chmod che usa una duplice sintassi per indicare i permessi:
read - lettura: Flag r in symbolic mode; Valore 4 in octal mode
write - scrittuta: Flag w in symbolic mode; Valore 2 in octal mode
execute - esecuzione: Flag x in symbolic mode; Valore 1 in octal mode
La gestione di attributi e permessi sui file: chmod, chown, chgrp.
La logica della sicurezza sui sistemi Unix / LinuxUtenti e root, permessi, attributi, limiti: le proprietà di sicurezza dei sistemi Unix.
Amministrazione di sistemi LinuxOverview delle attività di amministrazione dei sistemi Linux
Introduzione al File System LinuxLe informazioni fondamentali per comprendere e gestire il file system e la logica delle directory su Linux
Calcolo Permessi
Ne consegue che per calcolare i permessi da assegnare basta una semplice somma.
Ad esempio se vogliamo assegnare al proprietario del file tutti i permessi (lettura scrittura ed esecuzione), al gruppo solo lettura ed esecuzione ed agli altri solo esecuzione dovremo operare così
Proprietario
Lettura + Scrittura + Esecuzione
4+2+1 = 7
Gruppo
Lettura ed Esecuzione
4 + 1 = 5
Altri
Solo Esecuzione
1
Quindi chmod 751 nomefile