I permessi in Linux
Per permessi si intende cosa un utente può fare su file e directory e cosa no.
(Ovviamente l'utente root può fare tutto).
Per vedere i permessi apriamo un terminale e digitiamo:
$ ls -la , dove il parametro -l ci mostra gli attributi estesi dei file e -a ci mostra i file nascosti
Questo è un output tipico:
drwxr-xr-x+ 24 imac staff 816 11 Dic 16:56 .
drwxr-xr-x 5 root admin 170 7 Apr 2008 ..
-rw------- 1 imac staff 3 7 Apr 2008 .CFUserTextEncoding
-rw-r--r--@ 1 imac staff 12292 12 Gen 16:40 .DS_Store
drwx------ 30 imac staff 1020 19 Gen 20:03 .Trash
drwxr-x--x 3 imac staff 102 29 Set 2008 .adobe
-rw------- 1 imac staff 345 11 Dic 17:10 .bash_history
drwx------ 3 imac staff 102 12 Apr 2008 .cups
drwxr-xr-x 3 imac staff 102 5 Giu 2008 .dvdcss
-rw------- 1 imac staff 35 26 Nov 22:56 .lesshst
drwxr-xr-x 3 imac staff 102 19 Mag 2008 .mplayer
-rw-r--r-- 1 imac staff 47 14 Gen 17:10 .parallels_settings
drwx------@ 4 imac staff 136 5 Nov 18:59 Applications
drwx------+ 15 imac staff 510 12 Gen 20:26 Desktop
drwx------+ 44 imac staff 1496 11 Dic 17:06 Documents
drwx------+ 338 imac staff 11492 21 Gen 17:06 Downloads
drwx------+ 46 imac staff 1564 17 Nov 19:46 Library
drwxr-xr-x 6 imac staff 204 13 Apr 2008 LimeWire
drwx------+ 4 imac staff 136 5 Giu 2008 Movies
drwx------+ 5 imac staff 170 13 Apr 2008 Music
drwx------+ 212 imac staff 7208 24 Set 17:21 Pictures
drwxr-xr-x+ 5 imac staff 170 7 Apr 2008 Public
drwxr-xr-x+ 6 imac staff 204 11 Apr 2008 Sites
-rw-r--r--@ 1 imac staff 557 23 Giu 2008 profiles.bin
Sulla prima colonna troviamo il tipo e appunto i permessi.
Dove vedete una d vuol dire che è una directory, mentre l vuol dire che un link e - un file.
I permessi sono a gruppi di tre, e indicano i del proprietario, del gruppo, e di tutti gli altri.
r vuol dire scrittura, w lettura e x esecuzione.
Guardiamo ad esempio la riga del file .dvdcss.
Su questo file il proprietario ha i permesso rwx (quindi lettura, scrittura, esecuzione), il gruppo xr (solo esecuzione e scrittura), gli altri solo esecuzione.
Ovviamente sia per file che per directory possiamo in ogni momento cambiare i permessi tramite il comando chmod.
Chmod ha due tipi di sintassi: ottale e simbolica.
Io uso la prima che secondo me è più semplice, quindi parlerò di questa.
Il sistema ottale numera i permessi da 0 a 7, ed in grado con un numero a testa di definire i permessi per entrambi (invece che tre lettere a testa)
I permessi vanno così:
- 0 nessun permesso
- 1 esecuzione
- 2 scrittua
- 4 lettura
Facciamo qualche esempio.
$ chmod 777 file.txt
Risultato:
-rwxrwxrwx 1 matte users 0 22 gen 23:29 file.txt
Altro esempio:
$ chmod 640 file.txt
-rw-r----- 1 matte users 0 22 gen 23:32 file.txt
In sostanza nel primo esempio sia il proprietario, che il gruppo che gli altri hanno tutti i permessi.
Nel secondo invece il proprietario ha i permessi di lettura e scrittua (4+2=6), il gruppo di lettura (4), gli altri nessun permesso.
Oltre i permessi è possibile cambiare anche il proprietario tramite chown.
La sintassi è semplice: chown proprietario:gruppo file.
$ chown matte:audio file.txt
-rw-r----- 1 matte audio 0 22 gen 23:32 file.txt
Come vedete rispetto a prima è cambiato il gruppo di appartenenza.
Infine un parametro molto importante è -R se vogliamo cambiare i permessi a una directory e a tutte le sotto directory in una botta sola:
$ chmod 744 -R directory
$ chown -R matte:users directory
linux permessi chmod chown
Commentami!