chmod , chown : permessi e proprietari sotto linux

Se digitiamo al prompt di una macchina linux “# ls -alt” ci viene restituita una lista dei file.

Sulla prima colonna troviamo 10 lettere che indicato come sono impostati i permessi di quella directory o file.

Sulla seconda il numero di hard link (collegamenti fisici) ( ma di questo ne parleremo un’altra volta. )

Sulla terza e quarta rispettivamente nome del proprietario e nome del gruppo.

Cominciamo dalla prima colonna:
La prima lettera indica se è una directory (d) , un link simbolico (l) o un file (-) mentre le restati 9 ( a gruppi di 3 ) definiscono i permessi per proprietario, gruppo e altri utenti.

I tipi di permesso possono essere

  1. lettura (r)
  2. scrittura (w)
  3. esecuzione (x)

Nell’esempio qui sotto abbiamo un file dove il proprietario può leggere e scrivere ( rw-) , il gruppo può solo leggere ( r–) ed infine tutti quelli che non fanno parte del gruppo possono solo leggere ( r– ).
Andando direttamente alla terza e quarta colonna ( root suser ) possiamo capire che questo file appartiene all’utente root ed al gruppo suser
-rw-r--r-- 1 root suser .....................

Adesso che abbiamo capito come leggere tutte queste informazioni vediamo come cambiarle.

chmod è il comando che modifica i permessi mentre chown cambia utente e gruppo.

chmod ha due tipi di sintassi: simbolica e ottale ( vedi # man chmod ) , io cercherò di spiegarvi la seconda che ritengo più sintetica.

Il sistama ottale è composto da tre cifre e definisce un un unica volta i vari tipi di permessi per proprietario, gruppo e utenti.
Questi tre numeri vengono calcolati sommando i seguenti valori ottali:
0 – Nessun permesso.
1 – Esecuzione.
2 – Scrittura.
4 – Lettura.

Passiamo a qualche esempio ..
(1) # chmod 777 nomefile
(2) # chmod 644 nomefile

es.1 In questo modo abbiamo impostato il permesso di lettura scrittura ed esecuzione ( 4+2+1 = 7 ) rispettivamente per proprietario, gruppo e utenti.
es.2 Seguendo lo stesso ragionamento abbiamo impostato lettura e scrittura ( 4+2 = 6 ) per il proprietario e solo lettura ( 4 ) per gruppo e utenti

Arrivati qui non ci rimane altro che capire come usare chown la cui sintatti si può riassumenre con

chown nomeproprietario:nomegruppo nomefile

Faccio un esempio ..

chown maurizio:suser nomefile

Con questo comando abbiamo impostato maurizio come proprietario e suser come gruppo.

Sia per chmod che per chown possiamo sostituire nomefile con nomedirectory e se aggiungiamo il parametro opzionale -R lo applichiamo in modo ricorsivo su tutte le sotto directory.
# chmod -R 744 nomedirectory
# chown -R maurizio:suser nomedirectory

L’uso di questi due comandi diventerà naturale dopo qualche esperimento.

Link di riferimento:

  1. http://it.tldp.org/man/man1/chmod.1.html
  2. http://it.tldp.org/man/man1/ls.1.html
  3. http://it.tldp.org/man/man1/chown.1.html
  4. http://www.shishii.com/dummy/index.php?id=59
  5. http://openskills.info/infobox.php?ID=93
  6. http://openskills.info/infobox.php?ID=94

ps

se trovate errori o inesattezze segnalatemelo

Maurizio Pelizzone

Maurizio Pelizzone

Sono Maurizio Pelizzone, sviluppatore WordPress da oltre vent'anni e consulente di intelligenza artificiale a Torino, co-fondatore di Mavida. Realizzo plugin e integrazioni su misura per WordPress e WooCommerce, automazioni dei processi con n8n e agenti AI, e tengo corsi e workshop su Claude Code, prompt engineering e vibe coding, in presenza a Torino o da remoto. Sono speaker ai WordCamp e autore della guida gratuita in italiano a Claude Code; se vuoi parlarmi di un progetto puoi prenotare una call conoscitiva.

5 commenti

  1. volevo chiedere come fare a negare il permesso ad un utente con accesso ssh di uscire dal proprio account e curiosare negli altri

  2. ciao,
    forse tu mi potresti aiutare. Devo cambiare il proprietario di alcuni files in modo definitivo ovvero, se li cambio con la procedura da te descritta funziona ma, come riavvio il pc torna tutto come prima. mi puoi aiutare?
    grazie

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *