In questo rapido tutorial, vedremo come possiamo usare il comando chmod in una macchina Ubuntu per trovare, modificare e rimuovere i permessi utente da file specifici che esistono sul file system dell’utente. Giochiamo attraverso varie condizioni in modo da poter padroneggiare i comandi chmod di base che possono rendere la nostra vita quotidiana più facile con Ubuntu.
Permessi Linux
I permessi Linux sono un grande insieme di regole che sono semplici da capire se si afferrano i diritti di base. I tre punti principali che dobbiamo capire per sapere come funzionano i permessi di Linux sono:
- L’elemento per cui i permessi sono stati definiti
- Quali azioni possono essere eseguite con un permesso
- Chi può eseguire quali azioni
Ci sono due elementi di base nel Filesystem Linux:
- Cartelle
- File
Ci sono tre azioni che possono essere eseguite:
- Lettura
- Scrittura
- Esecuzione. Oltre all’esecuzione di script, le stesse azioni sono necessarie per creare file e altre cartelle al suo interno
Gli utenti che possono eseguire queste azioni sono:
- Proprietario del file
- Gruppo del proprietario del file
- Utente che non sono associati al gruppo proprietario o al proprietario stesso
Per vedere le autorizzazioni relative a un file, eseguire il seguente comando:
Ecco cosa otteniamo con questo comando:
Trova il permesso per i file
Nell’output, i primi 10 caratteri presentano il permesso per il file:
- Il primo carattere, che è ‘-‘ in questo caso significa che questo è un file. Per una directory, questo sarebbe stato un ‘d’.
- I nove caratteri successivi rappresentano i permessi per il proprietario, il gruppo del proprietario e altri, rispettivamente.
Modificare i permessi
La sintassi per modificare i permessi di un file assomiglia a:
Rappresentazione ottale per i permessi
Possiamo presentare i permessi come un numero ottale. Per esempio, per impostare i permessi di lettura, scrittura & esecuzione per il proprietario, i permessi di lettura & scrittura per il suo gruppo, e nessun permesso per gli altri, su un file hello.txt, eseguiremo il seguente comando:
Una volta che eseguiamo il comando di cui sopra e proviamo a leggere un file con un account non proprietario usando il seguente comando:
otteniamo il seguente errore:
Ma da dove viene questo numero? Ogni cifra di questo numero rappresenta un insieme di permessi. Vediamo come sono stati ricavati:
- 0: Significa nessun permesso
- 1: Significa il permesso di esecuzione
- 2: Significa il permesso di scrittura
- 4: Significa il permesso di lettura
Per assegnare i permessi di lettura, scrittura & esecuzione al proprietario, gli abbiamo assegnato il numero 7 (= 4 + 2 + 1). Comprendiamo meglio questo in una tabella di cifre:
Numero | Binario | Lettura | Scrittura | Esecuzione |
0 | 000 | NO | NO | NO |
1 | 001 | NO | NO | SI |
2 | 010 | NO | SÌ | NO |
3 | 011 | NO | SI | SI |
4 | 100 | SI | NO | NO |
5 | 101 | SI | NO | SI |
6 | 110 | SI | Sì | NO |
7 | 111 | Sì | Sì | Sì |
La tabella qui sopra è molto chiara in ciò che ciascuno rappresenta in termini di permessi di file.
Rappresentazione dei caratteri per i permessi
Possiamo presentare i permessi come un numero ottale. Per esempio, per impostare i permessi di lettura, scrittura &esecuzione per il proprietario, i permessi di lettura &scrittura per il suo gruppo, e nessun permesso per gli altri, su un file hello.txt, eseguiremo il seguente comando:
Per aggiungere i permessi ad un utente esistente, possiamo anche fare:
Qui, il permesso di scrittura è stato assegnato al gruppo di utenti del proprietario del file.
Modifiche ricorsive dei permessi
Possiamo anche cambiare i permessi per i file contenuti in una specifica directory con un singolo comando. Per modificare i permessi di ogni singolo file e cartella in una determinata directory in una sola volta, usare sudo chmod con -R:
Possiamo vedere il seguente output che riflette chiaramente il cambiamento dei permessi dei file:
Cambiare ricorsivamente i permessi dei file
Conclusione
In questa lezione, abbiamo visto come possiamo modificare i permessi di un file e, se necessario, farlo ricorsivamente. Abbiamo capito i concetti di base su come i permessi di Linux ci possono aiutare molto nel nostro lavoro quotidiano.