Calcolatore chmod — Permessi dei file Linux (ottale ⇄ rwx)

Seleziona le caselle di lettura, scrittura ed esecuzione per ottenere il modo ottale e il comando chmod, oppure decodifica 755, 644 e rwxr-xr-x.

Permessi
ChiLetturaScritturaEsecuzioneCifra
Proprietario (user)7
Gruppo5
Altri5
Incolla “-rw-r--r--” o “drwxr-sr-x” direttamente da ls -l.
Ottale
0755
ls -l
-rwxr-xr-x
Comando
chmod 755 deploy.sh
chmod u=rwx,g=rx,o=rx deploy.sh
Cosa significa 755 per un file
  • Proprietario (7): lettura, scrittura, esecuzione
  • Gruppo (5): lettura, esecuzione
  • Altri (5): lettura, esecuzione
Preset comuni
Valuta un'espressione chmod simbolica

Guarda cosa fa chmod u+x,go-w a una modalità esistente. Supporta u/g/o/a, + - =, r w x X s t e copie come g=u. Per X usa l'impostazione della directory qui sopra.

644 (rw-r--r--) → 744 (rwxr--r--)

Funziona interamente nel tuo browser. Nulla di ciò che inserisci viene inviato. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo calcolatore chmod converte i permessi dei file Unix e Linux tra una griglia di caselle, il numero ottale usato da chmod (755, 644, 2775) e la stringa rwxr-xr-x stampata da ls -l. Modificane uno e gli altri si aggiornano, insieme a un comando chmod pronto da incollare e a una spiegazione in linguaggio semplice di chi può fare cosa. Gestisce i bit setuid, setgid e sticky, e spiega come gli stessi bit abbiano un significato diverso su una directory.

Valuta anche espressioni chmod simboliche come u+x,go-w o a=rX rispetto a un modo di partenza, con le stesse regole di GNU chmod, così puoi verificare cosa farà un comando prima di eseguirlo su un server. Una differenza: quando ometti la lettera u/g/o, il vero chmod applica la tua umask, mentre questo strumento la tratta come “a” (come con una umask di 000). Non tocca i tuoi file: è solo un calcolatore.

Come si usa

  1. Seleziona le caselle di lettura, scrittura ed esecuzione per proprietario, gruppo e altri, oppure digita un modo ottale come 750, o incolla una stringa come -rw-r--r-- da ls -l.
  2. Seleziona “È una directory” se stai impostando i permessi di una cartella; la spiegazione cambia, perché x su una directory significa “può entrarvi”.
  3. Inserisci il nome del file, seleziona Ricorsivo se serve e copia il comando chmod.
  4. Per verificare una modifica relativa, inserisci il modo attuale e un'espressione come u+x,go-w nella casella dell'espressione e leggi il risultato.
  5. Usa un preset quando ti serve solo la risposta abituale: 644 per i file, 755 per directory e script, 600 per le chiavi private.

Domande frequenti

Cosa significa chmod 755?

Ogni cifra è la somma di lettura (4), scrittura (2) ed esecuzione (1), per proprietario, gruppo e altri in quest'ordine. 7 = 4+2+1, quindi il proprietario può leggere, scrivere ed eseguire; 5 = 4+1, quindi gruppo e altri possono leggere ed eseguire ma non scrivere. Come stringa è rwxr-xr-x. È il modo standard per le directory e per script o programmi che tutti devono poter eseguire.

Che differenza c'è tra 644 e 755?

Solo il bit di esecuzione. 644 (rw-r--r--) consente al proprietario di leggere e scrivere e a tutti gli altri di leggere; è il modo normale per documenti, pagine web, immagini e configurazioni. 755 aggiunge l'esecuzione per tutti, che serve a una directory per potervi entrare e a uno script per poter essere eseguito. Dare 755 ai file normali è innocuo ma poco ordinato; dare 644 a una directory la rende inutilizzabile per gli altri.

Perché chmod 777 è una cattiva idea?

777 dà a ogni utente del sistema il permesso di modificare o sostituire il file, o di aggiungere ed eliminare file nella directory. Su un server web significa che qualsiasi processo compromesso, ad esempio un plugin vulnerabile eseguito come un altro utente, può riscrivere il tuo codice. La vera soluzione abituale a un errore “permission denied” è cambiare il proprietario (chown) o aggiungere l'utente del server web al gruppo del file, e poi usare 755/644 o 775/664.

Cosa sono setuid, setgid e lo sticky bit?

Sono la quarta cifra ottale facoltativa (quella iniziale). setuid (4) fa girare un eseguibile con i privilegi del suo proprietario, ed è così che passwd può modificare /etc/shadow. setgid (2) su un eseguibile lo fa girare con il gruppo del file; su una directory fa sì che i nuovi file ereditino il gruppo della directory, utile per le cartelle condivise di un team (2775). Lo sticky bit (1) su una directory consente solo al proprietario di un file di eliminarlo, come in /tmp (1777).

Quali permessi devono avere le chiavi SSH?

OpenSSH rifiuta le chiavi private leggibili da altri. Usa 600 (o 400) per le chiavi private come ~/.ssh/id_ed25519, 644 per le chiavi pubbliche (.pub), 600 per ~/.ssh/authorized_keys e ~/.ssh/config, e 700 per la directory ~/.ssh stessa. AWS e altri provider cloud ti dicono di fare chmod 400 sul file .pem che ti forniscono per lo stesso motivo.

Cosa significa una S o una T maiuscola in ls -l?

Una s o una t minuscola indica che il bit speciale è impostato e che lo è anche il bit di esecuzione sottostante. Una S o una T maiuscola indica che il bit speciale è impostato ma l'esecuzione no, il che di solito è un errore: setuid su un file che nessuno può eseguire non fa nulla, quindi rwSr--r-- è in genere il segno che qualcuno ha eseguito chmod u+s sul file sbagliato.

Bit di permesso su file e directory

• r su un file: leggerne il contenuto. Su una directory: elencare i nomi al suo interno (ls).

• w su un file: modificarne il contenuto. Su una directory: creare, eliminare e rinominare le voci al suo interno, ma solo insieme a x. Eliminare un file è una scrittura sulla sua directory, non sul file.

• x su un file: eseguirlo come programma o script. Su una directory: entrarci (cd) e accedere ai file al suo interno per nome. Una directory con r ma senza x ti permette di elencare i nomi ma non di aprire nulla.

I permessi vengono verificati rispetto alla prima classe in cui rientri: se sei il proprietario, valgono solo i bit del proprietario, anche se quelli del gruppo o degli altri sono più generosi.

Sintassi simbolica di chmod

Un modo simbolico è composto da una o più clausole separate da virgole nella forma [chi][operatore][permessi]. Chi è u (proprietario), g (gruppo), o (altri) o a (tutti). L'operatore è + per aggiungere, - per togliere o = per impostare esattamente. I permessi sono r, w, x, X (esecuzione solo se è una directory o se è già eseguibile da qualcuno), s (setuid/setgid) e t (sticky), oppure una singola u, g o o per copiare i bit attuali di un'altra classe.

Esempi: chmod u+x deploy.sh rende uno script eseguibile per il suo proprietario. chmod go-w file toglie la scrittura a tutti tranne il proprietario. chmod -R a=rX public/ rende un albero leggibile da tutti, con le directory accessibili e i file non eseguibili. chmod g=u shared/ dà al gruppo gli stessi diritti del proprietario.

Impostazioni predefinite sicure per caso d'uso

• File della web root: 644, directory 755, di proprietà del tuo utente di deploy; directory degli upload di proprietà dell'utente del server web, 755.

• Segreti (.env, chiavi private, credenziali): 600, di proprietà dell'utente del servizio che li legge.

• Script di shell in un repository: 755. Git memorizza solo il bit di esecuzione, come file mode 100755 o 100644; su Windows impostalo con git update-index --chmod=+x.

• Directory condivisa del team: 2775 con un gruppo comune, così i nuovi file ereditano il gruppo.

• La tua umask stabilisce il punto di partenza: con la comune 022, i nuovi file ricevono 644 e le directory 755; con 077, 600 e 700.

Strumenti gratuiti correlati

  • Calcolatore di subnet — Rete, broadcast, intervallo di host e maschera per qualsiasi CIDR; suddividi reti con VLSM, espandi indirizzi IPv6 e trova intervalli sovrapposti.
  • Generatore di .gitignore — Combina template .gitignore per linguaggi, framework, editor e sistemi operativi in un unico file pulito.
  • Generatore di espressioni cron — Crea una pianificazione cron con i menu a tendina o incollane una, leggila in parole semplici e vedi le prossime 10 esecuzioni nel tuo fuso orario e in UTC. Gratis, nel browser.
  • Docker Run ⇄ Compose — Trasforma un comando docker run in un servizio docker-compose.yml, o un servizio Compose di nuovo in docker run.