Calcolatore Chmod

Classe Leggi (r) Scrivi (w) Esegui (x)
Proprietario
Gruppo
Altri
Avanti

I permessi dei file Unix si presentano in tre triplette, lettura, scrittura, esecuzione per utente, gruppo, altri, che si riducono ordinatamente in un numero ottale a tre cifre. chmod 755 script.sh è rwxr-xr-x: il proprietario ha tutto, gruppo e altri hanno lettura ed esecuzione. Questo calcolatore ti consente di attivare ogni casella di controllo e vedere il cambio ottale in tempo reale, oppure incollare un numero ottale e vedere la suddivisione rwx, con il comando chmod esatto pronto per essere copiato.

Come funzionano i permessi chmod

  1. 1

    Attiva i 9 bit di permesso

    Tre gruppi (utente, gruppo, altri) × tre permessi (lettura, scrittura, esecuzione) = 9 caselle di controllo.

  2. 2

    Ogni gruppo diventa una cifra ottale

    Lettura = 4, scrittura = 2, esecuzione = 1. Somma i bit che vuoi abilitare.

  3. 3

    Leggi la forma ottale e simbolica risultante

    es. 755 → rwxr-xr-x; 644 → rw-r--r--; 600 → rw-------.

  4. 4

    Copia il comando chmod

    Lo strumento mostra il comando chmod per le autorizzazioni correnti, pronto da copiare. Esempi: chmod 755 nomefile, chmod u+x nomefile, chmod -R 755 directory.

Valori dei bit di permesso

Bit Valore Significato per i file Significato per le directory
Lettura 4 Può visualizzare i contenuti Può elencare le voci
Scrittura 2 Può modificare Può creare / eliminare / rinominare voci
Esecuzione 1 Può eseguire come programma Può attraversare (cd in, accedere dentro)

Valori chmod comuni

Ottale Simbolico Uso tipico
777 rwxrwxrwx Scrivibile da tutti, pericoloso; raramente corretto
755 rwxr-xr-x Script, binari, directory
750 rwxr-x--- Script privati per te e il tuo gruppo
700 rwx------ Script privati per te (SSH, ~/.ssh)
644 rw-r--r-- Documenti pubblici, immagini, HTML
640 rw-r----- Configurazioni leggibili dal gruppo
600 rw------- Configurazioni private, chiavi private SSH, ~/.netrc
444 r--r--r-- File pubblicati in sola lettura
400 r-------- Privato in sola lettura (raramente corretto; usa 600)

Permessi speciali (rari ma importanti)

  • setuid (4xxx): esegue il file come il suo proprietario, indipendentemente da chi lo esegue. /usr/bin/passwd utilizza questo.
  • setgid (2xxx): sui file, esegue come il gruppo. Sulle directory, i nuovi file ereditano il gruppo della directory.
  • sticky bit (1xxx): sulle directory, solo il proprietario del file può eliminare/rinominare. /tmp utilizza questo.

Gli ottali a quattro cifre includono questi: chmod 4755 setuid-binary attiva setuid insieme a 755.

Chmod simbolico

Molti amministratori preferiscono la forma simbolica per modifiche incrementali:

  • chmod u+x script, aggiungi esecuzione solo per il proprietario.
  • chmod go-w file, rimuovi scrittura per gruppo e altri.
  • chmod a+r file, dai lettura a tutti (utente, gruppo, altri).
  • chmod u=rw,go=r file, imposta esattamente questi bit.
  • chmod -R 755 directory, ricorsivo.

Errori comuni

  • 777 su cartelle di upload: sembra “correggere i permessi”; in realtà apre il server agli attaccanti. Usa una combinazione più ristretta (es. 755 con corretta proprietà di gruppo).
  • chmod -R 644 su directory: rimuove l’esecuzione sulle directory, quindi non puoi cd in esse. Usa 755 per le directory, 644 per i file normali.
  • 0600 vs 600: lo zero iniziale indica ottale in C e shell; la maggior parte delle implementazioni chmod accetta entrambi.
  • Umask: i nuovi file ereditano 666 meno l’umask. L’umask predefinito 022 dà file 644 e directory 755.

Domande frequenti

Di solito vuoi che il proprietario possa modificare, e che tutti gli altri possano elencare e attraversare. 755 = rwx per il proprietario, r-x per gruppo e altri, esattamente quella combinazione.

Quasi mai. 777 consente a chiunque nel sistema di modificare il file. Nei sistemi multi-utente è una falla di sicurezza; nei sistemi mono-utente è superfluo (il proprietario ha già rwx con 755). Se un’app web sembra aver bisogno di 777, la vera soluzione è la corretta proprietà (chown) o appartenenza al gruppo.

~/.ssh directory: 700. Chiavi private (id_rsa, id_ed25519): 600. Chiavi pubbliche (.pub): 644. authorized_keys: 600. SSH rifiuta chiavi con permessi più ampi come misura di sicurezza.

chown per il proprietario, chgrp per il gruppo, comandi separati. chmod cambia solo i bit, non l’utente/gruppo che possiede il file.

Strumenti correlati