Valid HTML 4.01 Transitional

Home Introduzione FileSystem Permessi User System Utili Tutti i comandi

 

Generalita' Comandi Programmazione Manuale Zenity Free Script

 

 

CSS Valido!

 

 

Informazioni   Corso Linux - Sezione Comandi - Capitolo Permessi

- Permessi di file e directory del filesystem -

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).


Chmod [-R] permessi(alfabetici o numerici) directory (o file):
chmod permette a root di modificare i permessi di un qualsiasi file/directory ed al proprietario solo quelli suoi, questo comando supporta sia la notazione numerica che quella alfabetica.
L'opzione -R assegna recursivamente i permessi ad una directory.
Per la notazione alfabetica tenere presente che:
il segno + aggiunge un permesso
il segno - rimuove un permesso
la lettera a (all) indica che si vuole concedere o revocare un permesso a tutti
la lettera u (user) indica che si vuole concedere o revocare un permesso all’utente
la lettera g (group)indica che si vuole concedere o revocare un permesso al gruppo
la lettera o (others) indica che si vuole concedere o revocare un permesso a tutti gli altri utenti
Facciamo alcuni esempi:
chmod a+rwx programmazione/prova.c
(indica che si vogliono concedere a tutti (a) tutti i permessi (rwx))

chmod go-wx programmazione/prova.c
(indica che si vuole revocare (-) a tutti tranne che al propietario i permessi di scrittura (w) ed esecuzione (x)) mentre, per la notazione numerica:

chmod -R 755 /prova
(assegna alla directory prova, ai suoi files ea tutte le sue subdirectory i permessi 7=rwx al proprietario 5=rx al gruppo e 5=rx agli altri)

chmod 755 *.sh
(assegna a tutti i file con estensione ".sh" della directory corrente i permessi 7=rwx al proprietario 5=rx al gruppo e 5=rx agli altri)

chown [-R] nuovo_propietario:nuovo_gruppo file (o directory)
permette a root o al proprietario di cambiare il propietario e il gruppo di un file/directory
il gruppo puo' essere anche omesso (omettendo anche “:”).
L'opzione -R assegna recursivamente nuovo_propietario e nuovo_gruppo anche alle sotto-directory
umask 022
(significa assegna 022 alla maschera predefinita dei permessi da assegnare al proprietario, al gruppo ed agli altri)
022 significa che nell'attribuzione dei permessi ai file da creare,
cui vengono attribuiti per default i permessi 666 (rw-rw-rw),
viene sottratto 0 al primo 6, 2 al secondo e 2 al terzo:
e quindi i file creati d'ora in poi avranno quindi i permessi 644 (-rw-r--r-- )
per le directory da creare invece vengono attribuiti per default i permessi 777 (rwxrwxrwx),
per cui, considerando come prima l'umask, le directory create avranno i permessi 755 (rwxr-xr-x).
Dando solo il comando umask, otterremo il valore attuale della maschera dei permessi.
un esempio chiarira' meglio:
alberto@UBUNTU81:~$ umask
0022
alberto@UBUNTU81:~$ mkdir provala_dir (crea la directory provala_dir)

alberto@UBUNTU81:~$ touch provala (crea il file provala)

alberto@UBUNTU81:~$ ls -la ("-la" chiede di visualizzare in formato lungo tutti i tipi di file della directory attuale)
-rw-r--r-- 1 alberto alberto 0 2008-12-17 20:05 provala (permessi rw-r--r-- (644) file provala)
drwxr-xr-x 2 alberto alberto 4096 2008-12-17 20:05 provala_dir (permessi rwxr-xr-x (755) directory provala_dir)

 

Copyright ©2009 Ciro Nuzzo - proglinux.altervista.org