Generalita' Comandi Programmazione Manuale Zenity Free Script
Corso Linux - Sezione Comandi - Capitolo Permessi
Linux è un sistema operativo multiutente e multigruppo, dove ogni utente ad eccezione di root, ha dei limiti di accesso ad alcune porzioni di filesystem. Ogni utente può appartenere a uno o più gruppi.
Se digitiamo in un "terminale" il comando ls, ci viene restituita l'elenco dei file della directory attuale:
- sulla prima colonna troviamo 10 lettere che indicato come sono impostati i permessi di quella directory o file.
- sulla seconda il numero di hard link (collegamenti fisici)
- sulla terza il nome del proprietario e sulla quarta il nome del gruppo di appartenenza del file.
Analizziamo la prima colonna:
- la prima lettera indica se è una directory (d) , un link simbolico (l) o un file (-)
- le restanti 9 ( a gruppi di 3 ) definiscono i permessi per proprietario, gruppo e altri utenti.
Questa struttura permette ad un amministratore "root" la gestione dei relativi permessi da attribuire a file e directory.
Tutti i file e directory all'interno del sistema hanno associati un utente proprietario (owner), un gruppo di utenti (group) e tutti gli altri (other).
Ognuno di questi ha dei permessi che li abilitano o meno alla visualizzazione, modifica o esecuzione dei files e directory.
Solo il super utente "root", o chi accede con il comando "sudo", ha la possibilità di accedere a qualsiasi file nel sistema senza tenere conto dei permessi.
Tali permessi, costituiti da 9 lettere che si leggono a gruppi di tre per ogni tipo di utente,
nel caso ci si riferisca a un file, sono:
"-" nessuno
"r" (lettura) consente di aprire un file per visualizzarne il contenuto;
"w" (scrittura) consente di sovrascrivere o aggiungere dati a un file;
"x" (esecuzione) consente di eseguire un file (nel caso si tratti di un file eseguibile).
mentre, nel caso ci si riferisca a una directory:
"r" (lettura) consente la visualizzazione del contenuto della directory, con il comando ls;
"w" (scrittura) consente la creazione o l'eliminazione di file all'interno della directory;
"x" (esecuzione) consente di accedere alla directory (per esempio con il comando cd) anche nel caso non se ne possa visualizzarne il contenuto.
Dando nel terminale il comando: ls -l
avremo per esempio:
drwxr-x--x 11 pinco utenti 4096 2008-12-12 20:33 Documenti
che significa:
- questa e' una directory (primo carattere "d")
- proprietario: pinco(permessi rwx) gruppo:utenti(permessi r-x) altri(permessi --x)
-rwxr----x 1 root root 2472 2008-06-09 10:15 stile.css
che significa:
- questo e' un file normale (primo carattere "-")
- proprietario: root(permessi rwx) gruppo:root(permessi r--) altri(permessi --x)
lrwxrwxrwx 1 root root 13 2008-11-10 18:39 motd -> /var/run/motd
che significa:
- questo e' un link al file motd (primo carattere "l")
- proprietario: root(permessi rwx) gruppo:root(permessi rwx) altri(permessi rwx)
Tenendo presente che usualmente i permessi si assegnano con un numero di tre cifre, in cui la prima si riferisce alla somma dei permessi del proprietario, la seconda a quella del gruppo e la terza a quella degli altri, occorre considerare che:
"r" corrisponde a 4, "w" corrisponde a 2 , "x" corrisponde a 1 e "-" corrisponde a 0
pertanto, rwxr-x--x significa:
rwx prime tre lettere permessi del proprietario (r=4) + (w=2) + (x=1) totale=7 (prima cifra)
r-x seconde tre lettere permessi del gruppo (r=4) + (w=0) + (x=1) totale=5 (seconda cifra)
--x terze tre lettere permessi degli altri (r=0) + (w=0) + (x=1) totale=1 (terza cifra)
per cui in definitiva permessi letterali rwxr-x--x si possono indicare con 751
Per assegnare i permessi vedere il comando chmod, per definire gli utenti vedere il comando chown.
Un utente qualsiasi per accedere ad i file di una directory deve avere i permessi di lettura (r) ed esecuzione (x) su di essa e di lettura (r) ed eventualmente di esecuzione (x) sul file, mentre il proprietario dovra' avere anche i permessi di scrittura (w).