📌 Lezione 9: Permessi dei file e directory: chmod e chown

Terminale con permessi Linux
Visualizzazione dei permessi con comando ls -l

⏱️ 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

  1. Crea un file chiamato test.sh.
  2. Imposta i permessi in modo che:
    • Tu abbia tutti i permessi.
    • Il tuo gruppo abbia solo lettura ed esecuzione.
    • Gli altri nessun permesso.
  3. 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!

🔗 Link utili

Lascia un commento