Red Hat Linux 7.1: Official Red Hat Linux Getting Started Guide | ||
---|---|---|
Indietro | Capitolo 10. Conoscenze di base sul prompt della shell | 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]$ |
Si tratta di un esempio delle caratteristiche di sicurezza di Linux. Linux, come UNIX, è un sistema multiutente e i permessi sui file consentono di proteggere l'integrità del sistema da ogni tipo di danno.
Un modo per ottenere l'accesso ai file è digitare il comando su per collegarsi come utente root, perché chi conosce la password di root ha accesso completo.
[newuser@localhost newuser]$ su Password: vostra password di root [root@localhost newuser]# cd /root [root@localhost /root]# |
Tuttavia, collegarsi come superutente non sempre conviene, perché è facile modificare o danneggiare file importanti di configurazione.
Tutti i file e le directory hanno un "proprietario", ossia una persona che li ha creati. Voi avete creato il file sneakers.txt (consultate la la sezione Ridirezionamento di input e output) nella vostra directory di login, quindi, questo file vi "appartiene".
Questo significa che possiamo specificare chi ha il permesso di leggerlo, modificarlo o nel caso si tratti di un'applicazione, chi può eseguirlo.
Leggere, scrivere ed eseguire sono le tre azioni principali regolate dai permessi.
Dal momento che 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 (vedere la Figura 10-12).
[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) e a quale gruppo di utenti appartiene (newuser).
Il vostro gruppo di default | |
---|---|
Ricordate che il vostro gruppo di default è lo stesso del vostro nome di login. |
Di fianco al nome del gruppo, sulla destra, sono presenti informazioni sulla dimensione, la data, l'ora di creazione e il nome del file.
-rw-rw-r-- |
La prima colonna (mostrata qui di seguito) indica i permessi attuali e ha dieci posizioni. La prima rappresenta il tipo di file. Le altre posizioni sono in realtà tre insiemi di permessi per tre categorie differenti di utenti.
Le categorie sono: il proprietario del file, il gruppo a cui appartiene il file e "altri", ossia utenti e gruppi diversi dal proprietario del file (newuser) e dal suo gruppo (newuser).
- (rw-) (rw-) (r--) 1 newuser newuser | | | | tipo proprietari gruppi altri |
Nella prima posizione, che specifica il tipo di file, potete trovare uno dei valori seguenti:
d — indica una directory
-(dash) — indica un file (piuttusto che una directory o un link)
l — indica un link simbolico a un altro programma o file sul sistema
Dopo il primo carattere, nei tre gruppi che seguono, è possibile specificare uno dei valori seguenti:
r — indica che il file può essere letto
w — indica che il file può essere scritto
x — indica che il file può essere eseguito (se si tratta di un programma)
Quando in uno di questi campi compare 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 identifichiamo i suoi permessi (vedere la Figura 10-13).
[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, in questo caso newuser, ha i permessi di lettura e scrittura per i file; il file non è un programma, perciò newuser non ha il permesso di eseguirlo. Anche il gruppo newuser ha i permessi di lettura e scrittura per sneakers.txt, ma non di esecuzione.
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.
Per cambiare i permessi del file sneakers.txt utilizzate il comando chmod.
Nel file originale sono presenti i seguenti permessi:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Se siete il proprietario del file o se siete collegati come utente root, potete modificare i permessi per il proprietario, il gruppo e altro.
In questo momento, solo il proprietario e il gruppo possono leggere e scrivere il file. Gli altri utenti o gruppi possono leggere il file, ma non scriverlo (r--).
Importanza dei permessi | |
---|---|
Non dimenticate che i permessi dei file sono importanti per la sicurezza. Se chiunque potesse leggere, scrivere o eseguire i vostri file, aumenterebbe il rischio di modifica, danneggiamento o cancellazione dei file. Come regola, dunque, concedete i permessi di scrittura e di lettura solo a chi davvero ne ha bisogno. |
Nel nostro esempio, supponiamo di voler concedere a un gruppo il permesso di scrittura su un file, in modo che possano leggerlo, scriverci sopra e salvarlo. Ciò significa che dovremo cambiare i permessi nella sezione "altri".
Poiché siete proprietari del file, non dovete collegarvi come utente root. Innanzitutto date uno sguardo al file digitando al prompt:
ls -l sneakers.txt |
Il comando precedente visualizza le seguenti informazioni:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Adesso digitate:
chmod o+w sneakers.txt |
Per controllare i risultati, visualizzate ancora i dettagli del file. Ora il vostro file dovrebbe essere simile a quanto segue:
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
A questo punto, chiunque può leggere o scrivere il file (vedere la Figura 10-14).
Il comando o+w indica al sistema che desiderate concedere ad "altri" il permesso di scrittura per il file sneakers.txt.
Per rimuovere i permessi di lettura e scrittura per sneakers.txt, utilizzate il comando chmod:
chmod go-rw sneakers.txt |
Il risultato sarà simile al seguente:
-rw------- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Digitando go-rw, avete indicato al sistema di rimuovere i permessi di lettura e scrittura relativi al file sneakers.txt per il gruppo e gli "altri".
Potete immaginare queste impostazioni come una specie di stenografia quando desiderate cambiare i permessi con chmod, poiché tutto ciò che vi occorre ricordare sono pochi simboli e lettere da associare al comando chmod.
Ecco una lista delle opzioni possibili:
Identità
u — l'utente che possiede il file (ossia il proprietario)
g — il gruppo a cui appartiene l'utente
o — altri (né il proprietario né il gruppo del proprietario)
a — tutti, ossia (u, g e o)
Permessi
r — accesso di lettura
w — accesso di scrittura
x — accesso di esecuzione
Azioni
+ — aggiungi permesso
- — rimuovi permesso
=— rendi unico il permesso
Un altro permesso | |
---|---|
Un altro simbolo di permesso è t, chiamato anche "sticky bit". Se a un file viene assegnato uno sticky bit, un utente che vuole rimuovere o rinominare quel file deve esere il proprietario del file e della directory deve aver il permesso di scrittura o collegarsi come root (vedere la la sezione Proprietà dei file nel Capitolo 11). |
Desiderate provare? Rimuoviamo qualsiasi tipo di permesso dal file sneakers.txt.
chmod a-rwx sneakers.txt |
Ora, controllate se riuscite a leggere il file:
[newuser@localhost newuser]$ cat sneakers.txt cat: sneakers.txt: Permission denied [newuser@localhost newuser]$ |
Ha funzionato! Ma, dal momento che il file vi appartiene, potete modificare i permessi quando volete e riportarli alla situazione di partenza (vedere la Figura 10-15).
[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 — aggiunge l'accesso di scrittura al gruppo
o-rwx — rimuove tutti i permessi per gli altri
u+x — permette al proprietario del file di eseguirlo
a+rw — consente a tutti di leggere e scrivere il file
ug+r — permette al proprietario e al gruppo di leggere il file
g=rx — permette al gruppo solo di leggere ed eseguire il file (ma non di scriverlo)
Aggiungendo l'opzione -R, possiamo cambiare i permessi per l'intero albero della directory in cui ci troviamo.
Esiste 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 consentire a chiunque di avere accesso di lettura e scrittura a qualsiasi file nella directory tigger, digitate:
chmod -R a+rw tigger |
Ma se non concediamo ad altri 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.
Digitate per esempio:
chmod a-x tigger |
per negare i diritti di esecuzione a tutti gli utenti.
Ecco cosa accade se proviamo a entrare nela directory tigger (usando cd).
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Ripristinate i diritti di accesso al proprietario o al gruppo.
chmod ug+x tigger |
Ora, se controllate il vostro lavoro con ls -dl vedrete che solo gli "altri" non hanno accesso a tigger.