Se un file “esiste” ma non si apre, uno script non parte o una cartella condivisa restituisce “Permesso negato”, quasi sempre il problema è qui: linux permessi file guida non è solo teoria da amministratori, ma una competenza pratica che evita blocchi quotidiani su desktop, NAS, VPS e server aziendali. Capire come funzionano proprietario, gruppo e altri utenti permette di risolvere guasti rapidi senza allargare i permessi più del necessario.
Linux permessi file guida: da dove partire davvero
Su Linux ogni file e ogni directory hanno tre elementi base: un proprietario, un gruppo associato e una serie di permessi. I permessi indicano chi può leggere, scrivere o eseguire quel contenuto. La logica sembra semplice, ma cambia molto tra file normali, script, directory e risorse condivise.
Il primo comando da conoscere è `ls -l`. Mostra una riga come `-rwxr-x—`. Quel blocco va letto da sinistra a destra. Il primo carattere indica il tipo di oggetto: `-` per file, `d` per directory. I nove caratteri successivi sono divisi in tre terne: proprietario, gruppo, altri. In ciascuna terna, `r` significa read, `w` write, `x` execute.
Se vedi `rw-` sul proprietario, vuol dire che il proprietario può leggere e modificare il file, ma non eseguirlo. Se la directory ha `rwx`, quel soggetto può elencarne il contenuto, crearvi elementi e attraversarla. Questo punto è spesso sottovalutato: sui file il bit `x` consente l’esecuzione, sulle directory consente l’accesso attraversando il percorso.
Cosa significano davvero read, write ed execute
Su un file normale, `r` permette di leggerne il contenuto, `w` di modificarlo o svuotarlo, `x` di eseguirlo come programma o script. Su una directory, invece, `r` consente di vedere i nomi dei file, `w` di creare, rinominare o cancellare elementi, `x` di entrarci e usarla nel percorso.
Qui nasce uno degli errori più comuni. Molti assegnano `777` a una directory perché “così funziona”. Funziona, sì, ma lascia scrittura aperta a chiunque. Su un server multiutente o su una macchina esposta, è una scelta rischiosa. Il principio utile è più semplice: dare solo i permessi strettamente necessari.
chmod: cambiare i permessi senza indovinare
Il comando più usato è `chmod`. Può funzionare in modalità simbolica o numerica. La modalità simbolica è spesso la più leggibile all’inizio. Per esempio, `chmod u+x script.sh` aggiunge il permesso di esecuzione al proprietario. `u` sta per user, `g` per group, `o` per others, `a` per all.
Se vuoi togliere la scrittura agli altri utenti, il comando è `chmod o-w file.txt`. Se vuoi impostare lettura e scrittura al proprietario e sola lettura al gruppo, puoi usare la notazione numerica: `chmod 640 file.txt`.
La notazione numerica usa una somma. `r=4`, `w=2`, `x=1`. Quindi `7` significa `rwx`, `6` significa `rw-`, `5` significa `r-x`. Un classico `755` assegna pieno controllo al proprietario e lettura più esecuzione a gruppo e altri. È comune per directory e script pubblici. Un `644` è adatto a molti file di configurazione o documenti che non devono essere eseguibili.
Va però fatta una distinzione pratica. Uno script shell può avere `755`, ma non ogni file di testo deve ereditarlo. Dare `x` quando non serve non è una tragedia come dare `w` a tutti, ma resta cattiva igiene amministrativa.
chown e chgrp: quando il problema non è chmod
Molti errori di accesso non dipendono dai bit di permesso, ma dalla proprietà del file. Se un’applicazione gira con un utente specifico e i file appartengono a un altro utente, anche un `chmod` generoso può non risolvere il problema nel modo corretto.
`chown` cambia proprietario, e opzionalmente gruppo. Per esempio, `chown mario:mkt report.csv` assegna il file all’utente `mario` e al gruppo `mkt`. Se vuoi cambiare solo il gruppo puoi usare `chgrp`.
Questa parte conta molto nei servizi web, nei backup automatici e nelle cartelle sincronizzate. Se un processo crea file come `root` dentro una directory usata poi da un utente normale, iniziano errori a catena. In questi casi non serve aprire i permessi a tutti: va corretto il proprietario.
Permessi delle directory: il punto che crea più confusione
Una directory con `644` è quasi sempre inutilizzabile, perché manca il bit `x`. Puoi magari leggerne il nome nella lista, ma non entrarci davvero. Per questo molte directory usano `755` o `750`, a seconda di quanto debbano essere accessibili.
Se stai gestendo una cartella di lavoro condivisa tra utenti dello stesso team, `770` può avere senso, ma solo se il gruppo è corretto. Se invece vuoi che i file creati dentro ereditino il gruppo della directory, entra in gioco il bit setgid sulla directory. Si imposta con `chmod g+s cartella`. È molto utile nei repository condivisi o nelle cartelle operative di reparto.
Qui vale il solito “dipende”. In un PC personale può non servirti mai. In un piccolo ufficio con condivisioni Samba o progetti gestiti da più account, può evitare parecchi problemi ripetitivi.
Umask: perché i nuovi file nascono già con certi limiti
Se ti capita di correggere sempre gli stessi permessi sui file appena creati, probabilmente il punto non è `chmod`, ma `umask`. La umask definisce quali permessi vengono rimossi di default durante la creazione di file e directory.
In pratica, un file non nasce quasi mai con `777`. Di solito i file partono da una base logica che viene ridotta dalla umask. Una umask comune come `022` produce spesso file `644` e directory `755`. Con `027`, invece, gli altri utenti non avranno accesso.
Per vedere la umask corrente usa `umask`. Per una lettura simbolica più chiara, su molti sistemi funziona `umask -S`. Se lavori in ambienti con dati sensibili o cartelle di reparto, regolare la umask può essere più efficace che rincorrere le correzioni a mano.
SUID, SGID e sticky bit: servono, ma con prudenza
Nella gestione avanzata dei permessi compaiono tre bit speciali. Non servono ogni giorno, ma è bene riconoscerli. Il SUID consente a un eseguibile di girare con i privilegi del proprietario del file. Il SGID fa qualcosa di simile per il gruppo, oppure sulle directory forza l’ereditarietà del gruppo. Lo sticky bit, usato spesso su directory condivise come `/tmp`, impedisce a utenti diversi di cancellarsi a vicenda i file, anche se la directory è scrivibile.
Sono strumenti utili, ma non sono scorciatoie. Il SUID in particolare va trattato con attenzione, perché amplia il perimetro di privilegio di un eseguibile. Se non sai esattamente perché ti serve, probabilmente non ti serve.
Errori tipici e correzioni pratiche
Se uno script risponde con “Permission denied”, verifica prima se ha il bit `x` e se il filesystem permette l’esecuzione. Se un utente non riesce a salvare in una cartella condivisa, controlla gruppo, permessi della directory e umask. Se un servizio web non scrive nella directory `uploads`, spesso il processo gira con un utente diverso da quello con cui hai creato la cartella.
Un altro caso frequente riguarda i file copiati da dischi esterni o da sistemi Windows. Su filesystem come FAT32 o exFAT la gestione dei permessi Linux non funziona come su ext4. In questi scenari i permessi possono dipendere dalle opzioni di mount, non dai classici `chmod` e `chown`. È il genere di dettaglio che fa perdere tempo se si cerca la soluzione nel posto sbagliato.
Un metodo semplice per non sbagliare
Quando devi risolvere un problema di accesso, conviene seguire un ordine. Prima identifica chi sta provando ad accedere: utente reale, servizio, processo automatico. Poi verifica proprietà e gruppo con `ls -l`. Solo dopo modifica i permessi, partendo dal minimo necessario. Se il problema si ripete sui nuovi file, guarda la umask o la configurazione dell’applicazione che li crea.
Questo approccio è più lento dei comandi “apri tutto”, ma evita danni collaterali. Su sistemi condivisi, una correzione frettolosa oggi può diventare un incidente di sicurezza domani. È una differenza piccola sulla riga di comando, ma enorme nella gestione reale.
Linux permessi file guida per utenti desktop e piccoli server
Per un uso desktop personale, nella maggior parte dei casi bastano tre schemi mentali: `644` per file normali, `755` per directory e script eseguibili, `600` per dati riservati come chiavi private e file sensibili. Su piccoli server o NAS, invece, il tema si allarga a gruppi, ereditarietà e servizi che scrivono con account dedicati.
È qui che un supporto tecnico organizzato fa la differenza: non basta far sparire l’errore, bisogna capire se il fix è coerente con sicurezza, manutenzione e aggiornamenti futuri. Anche su supportotecnico.ai, quando si affrontano problemi Linux, la correzione giusta non è quasi mai quella più permissiva, ma quella più precisa.
I permessi su Linux non richiedono memoria fotografica, richiedono metodo. Una volta capito chi è il proprietario, chi appartiene al gruppo e che cosa deve davvero fare ogni utente, i messaggi “Permesso negato” smettono di essere un muro e diventano un’indicazione utile su dove intervenire.