Status scroll
0%
Capitolo 10 di 1663%
Capitolo 10Sessione operativa · 3h

Linux / Kernel / Shell

Permessi, Utenti e Gruppi

Controllo degli accessi in Linux: file, , e gestione completa di utenti e gruppi.

Modalità

FocusOS / Linux
Outputteoria + pratica

Checkpoint 1

Leggere e modificare con in notazione ottale e simbolica.

Checkpoint 2

Cambiare proprietario e gruppo con .

Checkpoint 3

Creare, configurare e rimuovere utenti e gruppi in modo operativo.

Glossario del capitolo

Termini da tenere aperti mentre studi

Tocca un termine per aprire il drawer e collegare teoria, comandi e pratica Linux.

Perché conta

e ownership sono il cuore della sicurezza Linux quotidiana: un bit sbagliato puo esporre dati e servizi.

Sapere creare utenti e gruppi in modo ripetibile e un requisito base per ambienti multiutente e server.

Verificare ogni modifica con id/getent evita stato inconsistente e debugging costoso.

Sezione operativa

Permessi, chmod e chown

Ogni file ha tre livelli di accesso: owner, group e others. Per ognuno il sistema controlla tre operazioni: r (read), w (write), x (execute).

I si esprimono in notazione ottale: r=4, w=2, x=1 — le tre cifre si sommano per formare un valore da 0 a 7. chmod 755 significa owner=7 (rwx), group=5 (r-x), others=5 (r-x). La notazione simbolica (chmod u+x) modifica un singolo bit senza toccare gli altri.

Da tenere a mente

  • Leggi prima, cambia dopo: ls -la ti mostra i attuali prima di qualsiasi .
  • La notazione ottale riscrive tutti i ; quella simbolica (u+x, g-w) agisce su uno solo.
  • Usare troppo aperti (777) non è comodità: è un rischio di sicurezza reale.

Valori dei bit — come si calcola ogni cifra ottale

OttaleSimbolicorwxPermessi attivi
0---nessun accesso
1--xsolo esecuzione
2-w-solo scrittura
3-wxscrittura + esecuzione
4r--solo lettura
5r-xlettura + esecuzione
6rw-lettura + scrittura
7rwxaccesso completo

Pattern comuni — owner / group / others

chmodOwnerGroupOthersUso tipico
600rw-------file privati, chiavi SSH (~/.ssh/id_rsa)
644rw-r--r--file di testo, configurazioni, HTML
700rwx------script e directory strettamente personali
755rwxr-xr-xscript eseguibili, directory pubbliche
775rwxrwxr-xdirectory condivise nello stesso gruppo
777rwxrwxrwxpericoloso — evitare in produzione
terminal
$ stat -c "%A %a %U:%G %n" script.sh
-rwxr-xr-x 755 mike:developers script.sh

Con stat leggi in una riga simbolici, ottali, owner e gruppo: è un check rapido prima di /.

terminal
$ namei -l /home/mike/progetto/deploy.sh
drwxr-xr-x root root /
drwxr-xr-x root root home
drwx------ mike mike mike
drwxr-x--- mike developers progetto
-rwxr-x--- mike developers deploy.sh

Mostra i di ogni segmento del percorso. Utile quando un file "sembra giusto" ma l'accesso fallisce per colpa di una directory intermedia.

warning:Se una directory nel path non ha bit x per il tuo utente/gruppo, non puoi attraversarla anche se il file finale è leggibile.

chmod

Riferimento rapido

chmod [opzioni] permessi file

Modifica i permessi di file e directory. Accetta notazione ottale (755) o simbolica (u+x, g-w, o=r).

Esempi pratici

  • $chmod 644 note.txt

    owner legge e scrive, group e others solo leggono — il caso tipico per documenti e configurazioni.

  • $chmod u+x script.sh

    Notazione simbolica: aggiunge il bit eseguibile solo all'owner senza toccare group e others.

  • $chmod g-w config.yml

    Rimuove il permesso di scrittura al gruppo lasciando intatti owner e others.

  • $chmod -R 755 public/

    Flag -R ricorsivo: owner ottiene rwx, group e others ottengono r-x su tutta la directory.

chown

Riferimento rapido

chown [utente][:gruppo] file

Cambia proprietario e gruppo di un file. Richiede sudo se non sei il proprietario attuale.

Esempi pratici

  • $chown mike note.txt

    Assegna il file all'utente mike lasciando invariato il gruppo.

  • $chown mike:developers progetto/

    Cambia owner e gruppo in un solo comando: mike proprietario, developers come gruppo.

  • $sudo chown root:root /etc/config

    Assegna la proprietà a root su entrambi i livelli — standard per file di sistema che non devono essere toccati da utenti normali.

Sezione operativa

Creare e gestire utenti e gruppi

In Linux ogni utente ha un UID (identificatore numerico), una home directory, una di default e appartiene a uno o più gruppi. Queste informazioni sono registrate in due file di sistema: /etc/passwd (utenti) e /etc/group (gruppi).

Il modo corretto per interrogarli non è leggerli direttamente con cat, ma usare `getent` — che funziona anche con directory di rete come LDAP o NIS, non solo con i file locali.

Su sistemi Debian/Ubuntu coesistono due comandi per creare utenti: useradd (basso livello, richiede tutte le opzioni esplicite) e adduser (script interattivo che guida il ). Su RHEL/Fedora/Arch esiste solo useradd. Per gli esempi usiamo useradd perché è universale e rende esplicito ogni parametro.

Da tenere a mente

  • Le modifiche ai gruppi di un utente richiedono un nuovo login per essere attive nella sessione.
  • userdel senza -r non rimuove la home directory — i file restano orfani nel sistema.
  • Verifica sempre con id o getent dopo ogni operazione: è l'unico modo per confermare che la modifica sia andata a buon fine.
  • getent è preferibile a cat /etc/passwd perché interroga tutte le sorgenti di identità configurate.
  • Per test puntuali di accesso usa sudo -u <utente> <comando>; usa completa (sudo -iu) solo se devi fare più azioni come quell'utente.

Struttura di /etc/passwd — un campo per volta

CampoEsempioSignificato
usernamemikenome di login, deve essere unico
passwordxx = hash in /etc/shadow (mai in chiaro qui)
UID1001identificatore numerico utente (root = 0)
GID1001gruppo primario dell'utente
commentoMike Rossinome completo o descrizione (GECOS)
home/home/mikedirectory personale dell'utente
shell/bin/bashshell di default al login

Comandi di gestione — riferimento rapido

ComandoScopoSudo
useraddcrea utente (parametrico, universale)
addusercrea utente (interattivo, Debian/Ubuntu)
usermodmodifica attributi di un utente esistente
userdelrimuove utente (con -r anche la home)
passwdimposta o cambia la passwordsì (per altri)
groupaddcrea un nuovo gruppo
groupdelelimina un gruppo (non rimuove i file)
gpasswd -a/-daggiunge (-a) o rimuove (-d) utente da gruppo
getent passwdinterroga il database utentino
getent groupinterroga il database gruppino

useradd

Riferimento rapido

useradd [opzioni] <username>

Crea un nuovo utente. Senza opzioni: nessuna home, shell /bin/sh di default, nessuna password impostata.

Esempi pratici

  • $sudo useradd -m -s /bin/bash mike

    -m crea la home directory, -s imposta bash come shell di default.

  • $sudo useradd -m -s /bin/bash -G sudo,developers mike

    -G aggiunge mike ai gruppi sudo e developers direttamente al momento della creazione.

  • $sudo useradd -u 1500 -g staff -m mike

    -u forza un UID specifico, -g imposta staff come gruppo primario.

usermod

Riferimento rapido

usermod [opzioni] <username>

Modifica gli attributi di un utente esistente. -aG è la combinazione più usata per aggiungere ai gruppi.

Esempi pratici

  • $sudo usermod -aG sudo mike

    -aG aggiunge mike al gruppo sudo senza rimuoverlo dagli altri — la -a (append) è fondamentale.

  • $sudo usermod -s /bin/zsh mike

    Cambia la shell di default di mike in zsh; attiva al prossimo login.

  • $sudo usermod -l nuovonome mike

    -l rinomina il login in nuovonome; la home directory non viene rinominata automaticamente.

  • $sudo usermod -L mike

    -L (lock) disabilita il login con password senza cancellare l'account.

userdel

Riferimento rapido

userdel [opzioni] <username>

Rimuove un utente dal sistema. Senza -r lascia intatta la home; con -r elimina home e mail spool.

Esempi pratici

  • $sudo userdel mike

    Rimuove l'utente lasciando intatta la home in /home/mike — i file restano orfani nel sistema.

  • $sudo userdel -r mike

    -r rimuove anche la home directory e il mail spool: nessun file residuo.

Checkpoint finale

Cosa portarti via

  • I permessi Linux sono tre livelli (owner/group/others) con tre operazioni (r/w/x).
  • La notazione ottale riscrive tutto; quella simbolica modifica un bit alla volta.
  • Ogni modifica a utenti o gruppi va verificata con id o getent.
Errori comuni
  • 777 non e una scorciatoia innocua: apre tutto a tutti e aumenta la superficie di attacco.
  • La notazione ottale non "aggiunge" : riscrive completamente i tre blocchi owner/group/others.
  • usermod -G senza -a non estende i gruppi: sovrascrive la lista e puo togliere accessi critici.
  • userdel senza -r non pulisce automaticamente la home: lascia file orfani e confusione operativa.
  • Cambiare owner con -R senza validare il path puo compromettere interi alberi applicativi.
Nel mondo reale
  • Deployment web standard usa owner applicativo dedicato e minimi su directory esposte.
  • Team DevOps creano gruppi per progetto per separare accessi write tra sviluppo, CI e produzione.
  • Audit di sicurezza partono da filesystem e membership gruppi prima di analizzare codice.
Approfondisci

essenziale

GNU chmod and chown manual

Sintassi ufficiale e comportamento dettagliato di chmod/chown.

Apri risorsa

vai-oltre

Linux users and groups administration

Riferimento pratico per useradd/usermod/userdel e gestione gruppi.

Apri risorsa

deep-dive

Principle of least privilege

Fondamenti di sicurezza per minimizzare privilegi su sistemi reali.

Apri risorsa

Pilot interattivo

Missione 10 — Applica permessi minimi senza rompere tutto

Questa missione simula un hardening reale su un file usato da persone e pipeline: devi correggere accessi senza introdurre regressioni.

Obiettivo

La missione e completata quando scegli permessi coerenti, eviti scorciatoie pericolose e verifichi il risultato con comandi di controllo.

Progresso missione: 0/3

Mini gioco decisionale

Scenario realistico — Hardening senza regressioni

deploy.sh e usato in CI e da un team misto. Policy target: owner alice, gruppo developers, permessi 750. Non sai se lo stato attuale e gia conforme e vuoi evitare cambiamenti inutili che possano rompere audit o pipeline.

Qual e la strategia iniziale migliore per rispettare least privilege minimizzando rischio di regressione?

Prompt operativo

Fermati e ragiona

  • Quando un chmod sbagliato crea un problema di sicurezza o di collaborazione?
  • Perché assegnare a ogni servizio un utente dedicato invece di usare root?

Progress Dashboard Quiz

Hai completato 0/0 domande su 16 capitoli con quiz.

Capitoli completati: 0/16

Quiz capitolo

Verifica rapida

1/5

Cosa esprime chmod 755?