Permissionator

Calcolatrice chmod per generare, convertire e verificare i permessi dei file su Linux

Tutto sui permessi dei file Linux e chmod

I permessi indicano quali utenti possono leggere, scrivere o eseguire i file. È importante dare accesso solo a chi ne ha bisogno, per mantenere il sistema sicuro e funzionante.

Cosa sono i permessi dei file?

I permessi controllano chi può leggere, scrivere o eseguire un file o una cartella in un sistema Linux. Esistono per mantenere i dati al sicuro, evitare modifiche indesiderate e assicurare che i programmi vengano eseguiti solo quando previsto. I permessi sono uno dei pilastri della sicurezza Linux — senza di essi chiunque potrebbe cambiare file di sistema o leggere i tuoi dati privati. I permessi si impostano con il comando chmod, che vedremo nel dettaglio qui sotto.

Tipi di utente

Su Linux i permessi si applicano separatamente a tre categorie di utenti:

  • Proprietario

    Di solito chi ha creato o possiede il file.

  • Gruppo

    Altri utenti che fanno parte del gruppo del file.

  • Altri

    Tutti gli altri nel sistema che non sono il proprietario né nel gruppo.

Tipi di permesso

Lettura (r)

Vedere il contenuto di un file o l'elenco dei file in una cartella.

Scrittura (w)

Modificare un file o aggiungere/rimuovere file in una cartella.

Esecuzione (x)

Eseguire un file come programma o entrare in una cartella.

Il comando chmod

chmod sta per “change mode”. Modifica i permessi di un file o di una cartella.Puoi usarlo in forma simbolica (lettere, come rwx) o numerica (numeri ottali, come 777).Funziona su singoli file o intere cartelle.

Rappresentazione simbolica

La prima opzione per specificare i permessi è la modalità simbolica, che usa lettere per definire i permessi per ciascun tipo di utente. È più facile da ricordare, leggere e capire, ma è più verbosa dell'ottale. r significa lettura, w scrittura e x esecuzione. Se uno di questi caratteri è sostituito da un trattino (-), quel permesso non è concesso. Diagramma che spiega la struttura delle stringhe dei permessi Linux. Mostra l'indicatore di tipo di file seguito dai permessi per proprietario, gruppo e pubblico. L'esempio '-rwxr-xr-x' significa che il proprietario può leggere/scrivere/eseguire, il gruppo può leggere/eseguire e gli altri possono leggere/eseguire.

Rappresentazione ottale (numerica)

La modalità ottale usa numeri per rappresentare i permessi. Dove lettura = 4, scrittura = 2 ed esecuzione = 1. Poi si sommano per ottenere un numero; in questo esempio 7, che significa che l'utente indicato può leggere, scrivere ed eseguire il file. Come prima, si specifica nell'ordine proprietario, gruppo e altri. Quindi 755 significa proprietario rwx (7), gruppo rx (5) e altri rx (5). Diagramma che mostra chmod 755 in forme numerica e simbolica. Il numero 755 corrisponde a rwx per il proprietario, r-x per il gruppo e r-x per gli altri; significa che il proprietario può leggere, scrivere ed eseguire, mentre gruppo e altri possono solo leggere ed eseguire.

Se questi numeri ti sembrano casuali, sappi che si calcolano come cifre binarie. Quindi 111 (rwx) vale 7, 101 (r-x) vale 5 e 100 (r--) vale 4.

Guida visiva che mostra come i permessi Linux passano dalla forma simbolica (rwx, r-x, r-x) al binario e poi alla forma numerica (7, 5, 5) per utente, gruppo e altri.

Aggiornare un singolo permesso

Spesso non vuoi cambiare tutti i permessi di un file/cartella, ma solo una parte. Per esempio, aggiungere l'esecuzione al solo proprietario, togliere la scrittura agli utenti pubblici o mettere il gruppo in sola lettura. Si fa in modalità simbolica con gli operatori `+`, `-` o `=`, seguendo il formato `chmod [chi][operatore][permesso] file`. Dove `chi` può essere `u` (proprietario), `g` (gruppo), `o` (altri) o `a` (tutti). `operatore` può essere `+` (aggiungi), `-` (rimuovi) o `=` (imposta esattamente). Esempio: `chmod g-w file.txt` rimuove la scrittura dal gruppo. Diagramma che spiega la sintassi di chmod in tre sezioni: 'Chi' con u per utente, g per gruppo, o per altri, a per tutti; 'Operatori' con + per aggiungere, - per rimuovere, = per impostare esattamente; e 'Permessi' con r per leggere, w per scrivere, x per eseguire.Tabella con esempi di comandi chmod per modificare i permessi, indicando a chi si applicano le modifiche, l'operazione eseguita, il tipo di permesso e una spiegazione. Esempi: u+r per aggiungere lettura al proprietario, g-w per rimuovere scrittura al gruppo, a=x per impostare solo esecuzione per tutti.

Modificare i permessi in modo ricorsivo

Usa l'opzione `-R` per cambiare i permessi di tutti i file e le cartelle dentro una directory. Per esempio: `chmod -R 755 /var/www` applica 755 a ogni file e cartella sotto /var/www. Fai attenzione: cambi ricorsivi possono rompere file di sistema se usati male.

Proprietà e chmod

I permessi lavorano assieme alla proprietà. Ogni file ha un proprietario e un gruppo.

Se devi cambiare chi è proprietario di un file, usa `chown`.

Esempio: `sudo chown user:group file.txt` cambia sia proprietario sia gruppo.

Bit speciali

Oltre a lettura/scrittura/esecuzione, Linux ha bit di permesso speciali:

  • Setuid (4)

    Esegue il file con i permessi del proprietario invece di quelli dell'utente che lo avvia.

  • Setgid (2)

    Esegue il file con i permessi del gruppo. Nelle cartelle, i nuovi file ereditano il gruppo.

  • Sticky (1)

    Nelle cartelle impedisce agli utenti di eliminare file che non possiedono. Comune in /tmp.

Preset chmod comuni

Ecco set di permessi comuni e i loro usi:

OctalMeaning
600Il proprietario può leggere/scrivere. Nessun accesso per altri. Chiavi SSH private.
644Il proprietario può leggere/scrivere. Gli altri possono leggere. Predefinito per molti file.
700Il proprietario ha controllo totale. Nessun accesso per altri. Script privati.
755Il proprietario può leggere/scrivere/eseguire. Gli altri possono leggere/eseguire. Comune per gli script.
777Tutti possono leggere/scrivere/eseguire. Evita salvo per cartelle condivise temporanee.
Tabella che mappa i valori ottali 0–7 ai permessi simbolici e al loro significato. Per esempio, 0 è nessun permesso (---), 4 è sola lettura (r--), 5 è lettura ed esecuzione (r-x) e 7 è lettura, scrittura ed esecuzione (rwx).

Debug dei permessi dei file

Se qualcosa non funziona, potresti vedere questi errori:

  • Permission denied - Controlla di avere esecuzione sui file o lettura sulle cartelle. Aggiungi con `chmod +x file` o `chmod +r cartella`.
  • Operation not permitted - Potresti aver bisogno di `sudo` per modificare file di sistema.
  • Read-only file system - Il filesystem è montato in sola lettura. Rimonta con scrittura o contatta l'amministratore.
  • Cannot open file: No such file or directory - Il percorso potrebbe essere errato. Verifica con `ls`.

Consigli di sicurezza

  • Rendi eseguibile un file solo se serve davvero.
  • Usa 600 per file privati e 644 per file leggibili pubblicamente.
  • Evita 777 a meno che non sia strettamente necessario.
  • Controlla i permessi con `ls -l` prima di cambiarli.
  • Prova le modifiche prima su file non critici.