
⏱️ Tempo stimato di lettura: 12 minuti
🧩 Difficoltà: Intermedio
🎯 Obiettivi:
- Comprendere cosa sono e a cosa servono i permessi
- Imparare a gestire permessi con
chmod - Imparare a cambiare proprietari con
chown
🔷 Teoria
In Linux, ogni file e directory possiede una serie di permessi che regolano chi può accedere e in che modo può interagire con essi. Questi permessi rappresentano un elemento cruciale per mantenere la sicurezza e garantire l’integrità del sistema operativo e dei dati personali o aziendali.
I permessi sono divisi in tre principali categorie:
- Utente (owner): colui che crea il file o la directory e che generalmente ha il controllo totale su di esso.
- Gruppo (group): un insieme di utenti a cui possono essere assegnati determinati permessi in modo condiviso.
- Altri (others): utenti che non fanno parte del gruppo proprietario del file e non sono i proprietari stessi, spesso considerati come utenti generici o guest.
Ciascuna categoria può disporre di tre tipi di permessi principali:
- Read (r): consente di leggere il contenuto di file o directory.
- Write (w): permette la modifica del contenuto o l’eliminazione del file.
- Execute (x): consente l’esecuzione di file (tipicamente script o programmi) o l’accesso diretto nelle directory.
🔶 Esempio pratico
Analizziamo l’output del comando ls -l:
-rwxr-xr-- 1 mario staff 512 Apr 10 10:00 script.sh
- Owner (rwx) può leggere, modificare ed eseguire il file.
- Gruppo (r-x) può leggere e eseguire ma non modificare.
- Altri (r–) possono solo leggere il file.
🔷 Modificare i permessi con chmod
Il comando chmod permette di assegnare o revocare permessi, utilizzando due modalità principali:
Modalità numerica
La modalità numerica utilizza valori ottali per rappresentare i permessi:
4: lettura (r)2: scrittura (w)1: esecuzione (x)
Ad esempio, il comando:
chmod 755 script.sh
7 (4+2+1): il proprietario può leggere, scrivere ed eseguire.5 (4+1): gruppo e altri possono leggere ed eseguire.
Modalità simbolica
La modalità simbolica usa lettere e operatori:
u(utente),g(gruppo),o(altri)+(aggiungere),-(rimuovere),=(impostare esattamente)
Esempio:
chmod u+x,g-w,o=r script.sh
Significato:
- Aggiunge permesso di esecuzione al proprietario.
- Rimuove permesso di scrittura al gruppo.
- Imposta il permesso di sola lettura per gli altri.
🔷 Cambiare proprietario con chown
Il comando chown cambia l’utente e il gruppo proprietario:
chown utente:gruppo script.sh
utente: nuovo proprietario.gruppo: nuovo gruppo proprietario.
Esempio reale:
chown mario:staff script.sh
Se devi modificare solo il gruppo, puoi utilizzare:
chown :staff script.sh
🔷 Permessi speciali: SUID, SGID e Sticky bit
In aggiunta ai permessi standard, esistono permessi speciali che possono essere impostati:
- SUID (Set User ID): permette di eseguire un file con i privilegi del proprietario del file, utile per file eseguibili che richiedono permessi elevati.
- SGID (Set Group ID): permette a file e directory di ereditare il gruppo del file eseguibile o directory.
- Sticky bit: utilizzato principalmente nelle directory, limita l’eliminazione di file solo al proprietario o all’amministratore.
Per impostare questi permessi:
chmod u+s script.sh # imposta SUID
chmod g+s directory # imposta SGID
chmod +t directory # imposta Sticky bit
🔷 Best practice nella gestione dei permessi
- Assegna sempre i permessi minimi necessari.
- Evita permessi troppo generosi per ridurre rischi di sicurezza.
- Controlla periodicamente i permessi assegnati ai file critici.
🟢 Esercizio finale
- Crea un file chiamato
test.sh. - Imposta i permessi in modo che:
- Tu abbia tutti i permessi.
- Il tuo gruppo abbia solo lettura ed esecuzione.
- Gli altri nessun permesso.
- Cambia il proprietario del file al tuo nome utente e gruppo principale.
🔁 Prossima lezione: Gestire processi e background
📈 Avanzamento: 🔷 Lezione 9/24 completata
📢 Hai dubbi? Scrivilo nei commenti!