Il tuo indirizzo IPv4:
Sistema operativo:

Come funzionano i permessi chmod: 755, 644 e sticky bit

Nei sistemi di tipo Unix, chmod modifica i permessi di accesso a file e directory. I permessi di lettura, scrittura ed esecuzione si impostano separatamente per il proprietario, il gruppo e gli altri utenti. I permessi delle directory hanno un significato proprio: riguardano l'elenco dei nomi, la creazione o rimozione delle voci e l'accesso a un percorso noto.

Modi numerici e simbolici

Un comando simbolico come chmod u+x script.sh concede al proprietario il permesso di eseguire il file. In un modo numerico la lettura vale 4, la scrittura 2 e l'esecuzione 1. Quindi 755 significa rwxr-xr-x: il proprietario può leggere, scrivere ed eseguire, mentre il gruppo e gli altri possono leggere ed eseguire. Il modo 644 è spesso adatto a un normale file pubblico, ma la sua idoneità dipende dall'applicazione. Non considerare un numero familiare come un'impostazione di sicurezza universale.

Perché contano i permessi delle directory

Su una directory, la lettura consente di elencare i nomi, la scrittura di modificare le voci della directory e l'esecuzione di attraversare un percorso noto. La rimozione di un file di norma dipende dai permessi della directory che lo contiene, non dal permesso di scrittura sul file stesso. Un file impostato a 444 può quindi essere comunque rimosso da chi ha accesso sufficiente alla directory. Il manuale di GNU Coreutils spiega questa distinzione. Se l'accesso non riesce anche quando il file finale sembra leggibile, controlla ogni directory superiore e l'identità con cui viene eseguito il servizio.

Un esempio di web hosting

Immagina una directory di file HTML che il server web deve leggere, ma che solo il proprietario può aggiornare. Un punto di partenza può essere 755 per le directory e 644 per i file ordinari. Devi comunque tenere conto dell'account del servizio, dei gruppi e delle regole dell'hosting; i file di configurazione privati possono richiedere un accesso più ristretto. Impostare tutto a 777 per far sparire un errore concede agli utenti locali ampi diritti di modifica e può introdurre un problema di sicurezza. Prima di modificarli, controlla il proprietario e i permessi attuali con stat e ls -l.

Setuid, setgid e sticky bit

Una quarta cifra ottale iniziale indica i bit speciali: 4 per setuid, 2 per setgid e 1 per sticky. Ad esempio, 4755 attiva setuid su un eseguibile; 455 no. Setuid va usato con attenzione, perché eventuali difetti del programma possono essere sfruttati con i privilegi del proprietario. Sulle directory, setgid può far ereditare alle nuove voci il gruppo della directory. Lo sticky bit su una directory condivisa, come /tmp, limita chi può rimuovere o rinominare i file di un altro utente. Prima di lanciare chmod -R, controlla con precisione quale albero verrà modificato: file ordinari, eseguibili e directory raramente richiedono tutti lo stesso modo.