Red Hat Linux 9: Red Hat Linux Getting Started Guide | ||
---|---|---|
Indietro | Capitolo 13. Conoscenze di base sul prompt della shell | Avanti |
All'inizio di questo capitolo è stato presentato l'esempio per spostarsi nella directory del login di root e avete ricevuto il seguente messaggio:
cd /root bash: /root: Permission denied |
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, come appreso in precedenza, perché chi conosce la password di root ha accesso completo.
Tuttavia, collegarsi come superutente non sempre conviene, perché è facile modificare o danneggiare importanti file 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 (vedere nella Sezione 13.9.1) nella vostra directory di login, quindi sneakers.txt "appartiene" a voi.
Questo significa che potete 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, potete anche specificare quali gruppi di utenti possono leggere, modificare, o eseguire un file.
Riesaminate il file sneakers.txt con il comando ls utilizzando l'opzione -l (lunga) (vedere la Figura 13-11).
Con questa opzione si visualizzano alcuni dettagli aggiuntivi. Potete vedere chi può leggere (r) e scrivere (w) il file, il proprietario (sam) e a quale gruppo di utenti appartiene (sam). Ricordate che il vostro gruppo di default è uguale al vostro nome di login.
A destra del nome del gruppo sono presenti informazioni sulla dimensione, la data, l'ora di creazione e il nome del file.
La prima colonna indica i permessi attuali e ha dieci posizioni. La prima posizione rappresenta il tipo di file. Le altre nove posizioni sono in realtà tre insiemi di permessi per tre categorie differenti di utenti.
Per esempio:
-rw-rw-r-- |
Le categorie sono: il proprietario del file, il gruppo a cui appartiene il file e "others" (altri), ossia gli altri utenti e gruppi nel sistema.
- (rw-) (rw-) (r--) 1 sam sam | | | | type owner group others |
Nella prima posizione, che specifica il tipo di file, potete trovare uno dei valori seguenti:
d — una directory
-(trattino) — un file regolare (piuttosto che una directory o un link)
l — un link simbolico a un altro programma o file del sistema
Dopo il primo carattere, nei tre gruppi che seguono, visualizzerete uno dei valori seguenti:
r — il file può essere letto
w — il file può essere modificato
x — il file può essere eseguito (se si tratta di un programma)
Quando in uno di questi campi compare un trattino, significa che un particolare permesso non è stato concesso. Osservate nuovamente la prima colonna del file sneakers.txt e identificate i suoi permessi.
ls -l sneakers.txt -rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Il proprietario del file, in questo caso sam, ha i permessi di lettura e scrittura per il file. Anche il gruppo, in questo caso sam, ha i permessi di lettura e scrittura per sneakers.txt. Dato che il file non è un programma, il proprietario e il gruppo non hanno il permesso di eseguirlo.
Utilizzate il comando chmod per modificare con facilità i permessi. Questo esempio mostra come modificare i permessi del file sneakers.txt con il comando chmod.
Il file originale sarà simile al seguente, con le impostazioni dei permessi iniziali:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Se siete il proprietario del file o siete collegati come account root potete modificare qualsiasi permesso per il proprietario, il gruppo ed altri.
In questo momento, solo il proprietario e il gruppo possono leggere e scrivere il file. Gli altri utenti o gruppi possono solo leggere il file (r--).
![]() | Attenzione |
---|---|
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 lettura e di scrittura solo a chi davvero ne ha bisogno. |
Nell'esempio riportato di seguito, supponete di voler concedere a chiunque il permesso di scrittura su un file, in modo che possano leggerlo, scriverci sopra e salvarlo. Ciò significa che dovrete cambiare i permessi nella sezione "altri".
Innanzitutto date uno sguardo al file digitando al prompt della shell:
ls -l sneakers.txt |
Il comando precedente visualizza le seguenti informazioni:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Ora digitate quanto segue:
chmod o+w sneakers.txt |
Il comando o+w indica al sistema che desiderate concedere ad "altri" il permesso di scrittura per il file sneakers.txt. Per controllare i risultati, visualizzate di nuovo l'elenco dettagliato del file. Questo è:
-rw-rw-rw- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Adesso chiunque avrà la possibilità di leggere e modificare il file.
Per rimuovere i permessi di lettura e scrittura dal file sneakers.txt utilizzate il comando chmod.
chmod go-rw 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".
Il risultato sarà simile al seguente:
-rw------- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
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 un elenco delle opzioni possibili:
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 (u, g e o)
r — accesso di lettura
w — accesso di scrittura
x — accesso di esecuzione
+ — aggiunge il permesso
- — rimuove il permesso
= — rende unico il permesso
Per verificare le vostre capacità in fatto di permessi, rimuovete tutti i permessi da sneakers.txt — a tutti.
chmod a-rwx sneakers.txt |
Ora verificate se è possibile leggere il file con il comando cat sneakers.txt, il risultato sarà simile al seguente:
cat: sneakers.txt: Permission denied |
Rimuovendo tutti i permessi, incluso il vostro, avete negato ogni accesso al file. Ma dato che voi siete il proprietario del file, potete sempre ripristinare i permessi utilizzanto il comando segiente:
chmod u+rw sneakers.txt |
Utilizzate il comando cat sneakers.txt per verificare che voi, il prorietario del file, potete leggerlo ancora.
Ecco alcuni esempi comuni di impostazioni da utilizzare con chmod:
g+w — aggiunge l'accesso di scrittura al gruppo
o-rwx — rimuove tutti i permessi per gli altri
u+x — consente al proprietario del file di eseguirlo
a+rw — consente a chiunque di leggere e scrivere il file
ug+r — consente al proprietario e al suo 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, potete cambiare i permessi per l'intero albero della directory in cui vi trovate.
Esiste tuttavia una limitazione, dal momento che non potete "eseguire" una directory come se fosse un'applicazione. Quando aggiungete o rimuovete i permessi di esecuzione per una directory, state in realtà concedendo (o vietando) i permessi di ricerca dentro questa directory.
Se non concedete ad altri i permessi di esecuzione su tigger, non importa chi ha l'accesso di lettura e scrittura, perché nessuno può entrare nella directory, a meno che non conosca l'esatto nome del file.
Per esempio, digitate:
chmod a-x tigger |
per negare i diritti di esecuzione a tutti gli utenti.
Ecco cosa accade quando provate a usare il comando cd per entrare nella directory tigger:
bash: tigger: Permission denied |
Ripristinate i diritti di accesso al proprietario o al gruppo.
chmod ug+x tigger |
Ora, se controllate il vostro lavoro con ls -l vedrete che solo gli "altri" non hanno accesso alla directory tigger.
Ricordate il riferimento alla stenografia per l'uso di chmod? Ecco un altro modo per modificare i permessi che inizialmente potrà apparirvi leggermente più complesso.
Ritornate ai permessi originali del file sneakers.txt (digitate ls -l sneakers.txt ).
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Ogni impostazione dei permessi può essere rappresentata da un valore numerico:
r = 4
w = 2
x = 1
- = 0
Quando questi valori vengono sommati tra di loro, il valore ottenuto è utilizzato per specificare i permessi. Se, per esempio, desiderate impostare i permessi di lettura e scrittura, dovrete utilizzare un valore di 6; 4 (lettura) + 2 (scrittura) = 6.
Nell'esempio potete vedere le impostazioni numeriche per sneakers.txt:
- (rw-) (rw-) (r--) | | | 4+2+0 4+2+0 4+0+0 |
Il totale per gli utenti è sei, il totale per i gruppi è sei e il totale per gli altri è quattro. Perciò si ottiene 664.
Se volete cambiare il file sneakers.txt in modo che il vostro gruppo non abbia l'accesso per la scrittura, ma possa leggere il file, è necessario rimuovere l'accesso sottraendo due (2) a quel set di numeri.
I valori numerici sono quindi sei, quattro e quattro (644).
Per rendere effettive le nuove impostazioni, digitate:
chmod 644 sneakers.txt |
Ora verificate le modifiche visualizzando il file. Digitate:
ls -l sneakers.txt |
L'output dovrebbe essere:
-rw-r--r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Adesso né il gruppo né gli altri possono scrivere nel file sneakers.txt. Per ripristinare i diritti di scrittura del gruppo sul file, potete aggiungere il valore w (2) al secondo gruppo di permessi.
chmod 664 sneakers.txt |
![]() | Attenzione! |
---|---|
I permessi 666 danno la possibilità a tutti di leggere o scrivere in un file o in una directory. I permessi 777 danno a tutti l'accesso in lettura, scrittura o esecuzione. Queste impostazioni possono creare problemi con i file più importanti, dunque non è una buona idea utilizzarle. |
Ecco un elenco di alcune impostazioni e di alcuni valori numerici e dei rispettivi significati:
-rw------- (600) — Solo il proprietario ha permesso di leggere e scrivere il file.
-rw-r--r-- (644) — Solo il proprietario ha permesso di leggere e scrivere il file; il gruppo e gli altri hanno solo il permesso di lettura.
-rwx------ (700) — Solo il proprietario ha permesso di leggere, scrivere ed eseguire il file.
-rwxr-xr-x (755) — Solo il proprietario ha il permesso di leggere, scrivere ed eseguire il file; il gruppo e gli altri hanno solo il permesso di leggerlo ed eseguirlo.
-rwx--x--x (711) — Solo il proprietario ha permesso di leggere, scrivere ed eseguire il file; il gruppo e gli altri hanno solo il permesso di eseguirlo.
-rw-rw-rw- (666) — Tutti possono leggere o scrivere sul file. (Fate attenzione con questi permessi.)
-rwxrwxrwx (777) — Tutti hanno il permesso di leggere, scrivere ed eseguire il file. (Anche questo tipo di permessi può essere rischioso.)
Ecco alcune impostazioni comuni per le directory:
drwx------ (700) — Solo l'utente può leggere e scrivere in questa directory.
drwxr-xr-x (755) — chiunque può leggere la directory, ma i suoi contenuti possono essere modificati solo dall'utente.