Red Hat Linux 7.0: The Official Red Hat Linux Getting Started Guide | ||
---|---|---|
Indietro | Capitolo 15. Siete qui | Avanti |
All'inizio di questo capitolo è stato presentato il seguente esempio per l'esecuzione del comando cd:
[newuser@localhost newuser]$ cd /root bash: /root: Permission denied [newuser@localhost newuser]$ |
Questo è un esempio delle caratteristiche di sicurezza di Linux. Linux, come UNIX, è un sistema multiutente, e i permessi sui file sono una soluzione per proteggere l'integrità del sistema, da ogni evenienza-- malintenzionata o accidentale.
Un modo per avere accesso è tramite il su di root, perchè chi conosce la password di root ha l'accesso completo.
[newuser@localhost newuser]$ su Password: your root password [root@localhost newuser]# cd /root [root@localhost /root]# |
Collegarsi come superuser non è sempre conveniente -- perchè è facile compiere degli errori su file importanti di configurazione.
Tutti i file e le directory sono di "proprietà" della persona che le ha create. Abbiamo creato il file sneakers.txt nella nostra login perciò sneakers.txt "appartiene" a noi.
Questo significa che possiamo specificare chi può leggere, scrivere. Inoltre nel caso il file sia un eseguibile è possibile specificare che ha il permesso di esecuzione.
Leggere, scrivere ed eseguire sono le tre impostazioni principali dei permessi.
Ogni utente del sistema è inserito in un gruppo, possiamo anche specificare quali gruppi di utenti possono accedere ai nostri file.
Riesaminiamo il file sneakers.txt con il comando ls utilizzando l'opzione -l (long) (vedasi Figura 15-16).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Con questa opzione si visualizzano alcuni dettagli aggiuntivi. Possiamo vedere chi può leggere (r) e scrivere (w) il file, il proprietario (newuser) ed a quale gruppo di utenti appartiene (newuser).
Il vostro gruppo di default | |
---|---|
Ricordatevi che, per default, il gruppo corrisponde al nome dell'utente. |
Tra il nome del gruppo ed il nome del file sono presenti le informazioni sulla dimensione del file, la data e l'ora di creazione.
Che significato hanno le lettere e i trattini presenti sulla sinistra? È più facile mostrare il significato con un esempio:
-rw-rw-r-- |
Ci sono 10 colonne. La prima colonna rappresenta il tipo di file. Le rimanenti 9 colonne sono suddivise in 3 gruppi con 3 differenti categorie di permessi.
Questi tre gruppi si riferiscono rispettivamente al proprietario del file, al gruppo di appartenenza del file, ed "al resto del mondo", cioè tutti gli altri utenti e gruppi al di fuori del proprietario (newuser) e del gruppo (newuser).
In particolare:
- (rw-) (rw-) (r--) 1 newuser newuser | | | | type owner group others |
Il primo campo, che specifica il tipo di file, può avere uno dei seguenti valori:
d -- una directory
- -- un file regolare (tranne directory e collegamenti)
l -- un link simbolico ad un file
Dopo il primo carattere, nei tre gruppi che seguono, è possibile specificare uno dei seguenti valori:
r -- indica che il file è accessibile in lettura
w -- indica che il file è accessibile in scrittura
x --indica che il file è un eseguibile (se è un programma)
Quando appare un trattino in uno di questi campi, significa che un particolare permesso non è stato concesso.
Osserviamo nuovamente la prima colonna del file sneakers.txt e leggiamo i suoi permessi (vedasi Figura 15-17).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt [newuser@localhost newuser]$ |
Il proprietario del file, newuser, ha i permessi di lettura e scrittura per i file; il file non è un programma, perciò newuser non ha il permesso di eseguirlo. Il gruppo newuser ha i permessi di lettura e scrittura per sneakers.txt. Similmente al programma per proprietari newuser, non esiste un permesso di esecuzione per gruppi newuser.
Gli ultimi tre caratteri si riferiscono agli utenti che non sono newuser e che non appartengono al gruppo newuser. Questi utenti possono leggere il file ma non possono scriverlo o eseguirlo.
Possiamo utilizzare il comando chmod per cambiare i permessi di un file.
Nel file sneakers.txt possiamo cambiare i permessi con il comando chmod.
Nel file originale sono presenti i seguenti permessi:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Dal momento che siamo i proprietari del file -- o siamo collegati come root -- possiamo cambiare i permessi utilizzando tutte le combinazioni.
Attualmente, il proprietario (noi) e gli utenti del gruppo ( newuser) possono leggere e scrivere il file.
Chiunque si trovi al di fuori del nostro gruppo -- può solamente leggere il file (r--).
I permessi sono necessari | |
---|---|
Ricordatevi che i permessi sui file sono molto importanti per la sicurezza. Ogni qualvolta permettete a chiunque di leggere, scrivere o eseguire i file, potreste mettere a rischio l'integrità del sistema. Come regola generale, vi consigliamo di evitare il più possibile i permessi di lettura e scrittura agli altri utenti. |
Nel nostro esempio, supponiamo di voler concedere ad un gruppo di scrivere su un file, in modo che possano leggerlo, scriverci sopra e salvarlo. Ciò significa che dovremo cambiare i permessi nella sezione "altri".
Dal momento che siamo i proprietari del file, non dobbiamo usare su per poter cambiare i permessi. È sufficiente digitare:
ls -l sneakers.txt |
che visualizza le informazioni sul file:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Ora digitate:
chmod o+w sneakers.txt |
Per controllare i risultati, possiamo elencare di nuovo i dettagli riguardanti i file:
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
A questo punto, chiunque può leggere o scrivere il file (si veda la Figura 15-18).
Quando abbiamo digitato o+w, abbiamo deciso di aggiungere i permessi di scrittura per il file sneakers.txt.
Se vogliamo eliminare tutti i diritti di accesso per il file sneakers.txt possiamo utilizzare il comando chmod per eliminare i permessi di lettura e scrittura come segue:
chmod go-rw sneakers.txt |
questo sarà il risultato:
-rw------- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
L'opzione go-rw, significa che "per il gruppo ed il resto del mondo, si vuole rimuovere i permessi di lettura e scrittura al file sneakers.txt."
Queste opzioni sembrano scritte in stile stenografico in modo da cambiare i permessi con chmod, perchè tutto quello che dovete fare è ricordare alcuni simboli e lettere con il comando chmod.
Ecco una lista delle opzioni:
Identità
u -- l'utente proprietario del file
g -- il gruppo al quale l'utente appartiene
o -- il resto del mondo (ne il proprietario ne il gruppo del proprietario)
a -- tutti (u, g, e o)
Permessi
r -- accesso di sola lettura
w -- accesso di sola scrittura
x -- accesso di esecuzione
Azioni
+ -- aggiungere i permessi
- -- rimuovere i permessi
= -- renderlo l'unico permesso
Proviamo? Rimuoviamo i permessi da sneakers.txt -- per tutti gli utenti.
chmod a-rw sneakers.txt |
Ora, controlliamo se è possibile leggere il file:
[newuser@localhost newuser]$ cat sneakers.txt cat: sneakers.txt: Permission denied [newuser@localhost newuser]$ |
Funziona! Non possiamo accedere al file. Visto che il file ci appartiene, possiamo cambiare i permessi a nostro piacimento. (Vedasi Figura 15-19)
[newuser@localhost newuser]$ chmod u+rw sneakers.txt [newuser@localhost newuser]$ cat sneakers.txt buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! [newuser@localhost newuser]$ |
Ecco alcuni esempi di impostazioni che possiamo utilizzare con chmod:
g+w -- aggiungere l'accesso di scrittura per un gruppo
o-rwx -- rimuovere i permessi per gli altri
u+x -- permettere l'esecuzione al proprietario del file
a+rw -- permettere a chiunque di leggere e scrivere nel file
ug+r -- permettere al proprietario e al gruppo di leggere il file
g=rx -- concedere la lettura e l'esecuzione (senza scrittura) al gruppo
Aggiungendo l'opzione -R, possiamo cambiare i permessi per l'intero albero della directory in cui ci troviamo.
C'è tuttavia una limitazione, dal momento che non possiamo "eseguire" una directory come se fosse un'applicazione. Quando aggiungiamo o rimuoviamo i permessi di esecuzione per una directory, stiamo in realtà concedendo (o vietando) i permessi di ricerca dentro questa directory.
Per permettere a chiunque di avere l'accesso di lettura e scrittura sul file directory tigger nella nostra directory di login, possiamo digitare:
chmod -R a+rw tigger |
Ma se non concediamo ad altri di avere i permessi di esecuzione su tigger, non serve a molto limitare l'accesso in lettura e scrittura, perchè nessuno può entrare nella directory - a meno che non conosca l'esatto nome del file.
Per esempio, digitiamo:
chmod a-x tigger |
per rimuovere i diritti di esecuzione a tutti gli utenti.
Ecco cosa accade se proviamo ad entrare nella directory tigger:
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Riconfiguriamo i nostri diritti di accesso e quelli dei gruppi.
chmod ug+x tigger |
Ora, se controlliamo il nostro lavoro con il comando ls -dl vedremo che solo gli altri non hanno accesso su tigger.