Guida al sistema ottale
Octal Number System
The octal system uses 8 digits: 0-7. Each octal digit represents exactly 3 binary bits. That's why 64₁₀ = 100₈. Historically used in UNIX/Linux file permissions (chmod 755 = rwxr-xr-x) and memory addressing in older 8-bit systems.
Permessi dei file in Linux
I permessi di accesso in Linux (chmod) usano tre cifre ottali: proprietario, gruppo, altri. Ogni cifra è la somma dei permessi: lettura=4, scrittura=2, esecuzione=1. Ad esempio chmod 755 = rwxr-xr-x (7=r+w+x, 5=r+x, 5=r+x). chmod 644 = rw-r--r--.
Applicazioni pratiche
File permissions: chmod 400 (read only), chmod 755 (full), chmod 600 (private). Used rarely in Python and Java. In older IBM System/360 used for disk addressing. Conversion: 64₁₀ = 100₈, 255₁₀ = 377₈.
L'ottale sopravvive perché 755 sono esattamente nove bit di permesso
L'ottale è quasi sparito dall'informatica, con un'eccezione vistosa: i permessi dei file Unix. Non è abitudine. Tre flag di permesso stanno esattamente in una cifra ottale, e tre classi di utente fanno nove bit, quindi un modo è precisamente di tre cifre, senza riempimento e senza resti.
Come funziona
- Converte tra ottale, decimale, binario ed esadecimale.
- Legge i modi di permesso, dove ogni cifra codifica lettura, scrittura ed esecuzione per una classe.
- Rende visibile la corrispondenza di tre bit per cifra, che è l'intera ragione della sopravvivenza di questa notazione.
1 cifra ottale = 3 bit = 8 valori (0–7) permessi: r = 4, w = 2, x = 1 7 = 4+2+1 = rwx 5 = 4+0+1 = r-x 6 = 4+2+0 = rw- modo = cifra di proprietario, gruppo e altri → 9 bit, 512 modi possibili
Esempio pratico
Leggere i modi più comuni nella loro forma simbolica.
- 755 → rwxr-xr-x, il modo usuale di una directory o di un eseguibile
- 644 → rw-r--r--, il modo usuale di un file
- 600 → rw-------, leggibile solo dal proprietario
- 777 → rwxrwxrwx, scrivibile da chiunque
Ogni cifra è indipendentemente la somma di 4, 2 e 1. 755 dà tutto al proprietario e concede a gruppo e altri lettura ed esecuzione ma non scrittura: per questo è il valore predefinito per tutto ciò che va eseguito o attraversato ma non modificato.
Come leggere il risultato
- 777 è quasi sempre un errore. Consente a qualsiasi utente del sistema di modificare il file, e vi si ricorre di solito quando un problema di permessi non è stato compreso, non perché la scrittura universale sia davvero voluta.
- Una directory ha bisogno del permesso di esecuzione per essere attraversata. La lettura elenca i nomi, l'esecuzione dà accesso a ciò che c'è dentro. Ecco perché 644 su una directory crea la situazione confusa in cui si vedono nomi di file che non si possono aprire.
- L'umask sottrae, non imposta. Con la comune umask 022 un file nuovo parte da 666 e diventa 644, mentre una directory nuova parte da 777 e diventa 755: è esattamente da lì che vengono quei due modi familiari.
- Una quarta cifra iniziale attiva setuid, setgid e lo sticky bit: 4755 invece di 755. Serve di rado e va compresa prima dell'uso, perché setuid sul binario sbagliato è un rischio concreto di escalation di privilegi.
Domande frequenti
- Perché ottale e non esadecimale per i permessi?
- Perché i permessi vanno a gruppi di tre bit e l'ottale è esattamente tre bit per cifra. L'esadecimale spezzerebbe un gruppo di tre bit a cavallo di due cifre, e si perderebbe la corrispondenza netta di una cifra per classe.
- Che cosa conviene usare davvero?
- 644 per i file ordinari, 755 per directory ed eseguibili, 600 per tutto ciò che contiene segreti come chiavi o credenziali. Spingiti oltre solo se sai dire con precisione quale accesso aggiuntivo stai concedendo e a chi.