Permessi sui file
Un sistema multiutente necessita di una soluzione per la protezione dei file e per garantire la sicurezza delle attività degli
utenti come quella del sistema stesso. In sistemi operativi Unix everything is a file, ogni cosa è un file con annesse
le informazioni necessarie per la gestione.
Analizziamo le informazioni di alcuni file:
$ ls -l
-rw-r-r- 2 utente gruppo 0 Nov 23 01:54 fileuno
lrwxrwxrwx 1 utente gruppo 4 Nov 23 01:55 link -> file
drwxr-xr-x 2 utente gruppo 1024 Nov 23 01:57 Directory
Utilizzando il comando ls come indicato visualizziamo i file nella directory mostrando i permessi relativi espressi dalle
prime 10 combinazioni di lettere visualizzate. La prima lettera può variare come segue:
- un file comune
d una directory
c un character special file
p un named pipe
s un file socket
l un link simbolico
Nell'esempio visto abbiamo riscontratato un file link, una directory e un file comune. Le rimanenti 9 lettere rappresentano a gruppi
di 3 i permessi rispettivi per l'utente proprietario, il gruppo e agli altri, cioè tutti gli utenti nel
sistema non considerati. Per modificare i permessi sui file è necessario utilizzare il comando chmod utilizzando
determinate combinazioni numeriche presentate nella tabella 8.1.
Numero Ottale |
Permesso |
Descrizione |
0 |
--- |
Nessuna Autorizzazione |
1 |
--x |
Esecuzione |
2 |
-w- |
Scrittura |
3 |
-wx |
Scrittura, Esecuzione |
4 |
r-- |
Lettura |
5 |
r-x |
Lettura, Esecuzione |
6 |
rw- |
Lettura, Scrittura |
7 |
rwx |
Lettura, Scrittura, Esecuzione |
|
Tab.8.1: Permessi sui file. Numero Ottale Permesso Descrizione |
Se desideriamo cambiare i permessi sul file ''fileuno '' dovremo digitare una combinazione di numeri nella forma seguente:
$ chmod 700 fileuno
Un modo alternativo per la medesima azione è il seguente:
$ chmod u+rxw fileuno
Nel modo illustrato sono stati decretati sul file in esame i diritti di lettura, scrittura ed esecuzione per il solo proprietario.
La seconda forma può risultare più semplice da apprendere perchè indica quali dei tre soggetti vengono considerati
e quali diritti questi possono avere. In forma estesa:
$ chmod ugo+rxw fileuno
Dove "u " è user (utente proprietario), "g " è group (il gruppo
di appartenenza), "o " è other (tutti quelli che non sono il proprietario o non sono presenti nel
gruppo di riferimento). Visualizziamo il cambiamento avvenuto:
$ ls -l fileuno
-rwxrwxrwx 1 darshan darshan 0 lug 15 18:06 fileuno
Per togliere il permesso di eseguibilità la forma si discosta di poco:
$ chmod ugo-x fileuno
Modalità SUID
E' possibile assegnare ad un file un dato permesso per essere eseguito con ID dell'utente "root". Tale operazione risulta
utile se si desidera assegnare agli utenti del sistema la possibilità di eseguire comandi strettamente vincolati all'identificativo
dell'amministratore di sistema. Di seguito un esempio pratico:
# chmod 4755 /sbin/shutdown
Notate il numero "4" in aggiunta alla canonica terzina "755" di permessi già analizzati. Tramite questa
aggiunta tutti gli utenti del sistema saranno in grado di lanciare il comando "/sbin/shutdown " che tradotto in
pratica permetterà il riavvio o lo spegnimento della macchina.
|