Convertisseur décimal en octal
Transformez un nombre décimal en base 8, le système des permissions Unix.
Chmod 755, chmod 644 : la première fois qu’on rencontre du code octal, c’est souvent pour changer les permissions d’un fichier Unix. Le nombre 755 n’est pas décimal, c’est octal. En décimal, c’est 493. Mais en octal, chaque chiffre représente un groupe de 3 bits, très pratique pour Unix.
Pourquoi octal pour Unix, et pas autre chose
Unix a choisi octal parce que 3 bits donnent exactement 8 combinaisons (0 à 7). Chaque permission (lecture, écriture, exécution) est un bit. Trois permissions = trois bits = un chiffre octal. Le décimal aurait demandé deux chiffres (0 à 31 sur 5 bits) ou trop peu (0 à 7 sur 3 bits sans octal). L’octal s’ajuste parfaitement.
Aujourd’hui, l’octal a disparu partout sauf en Unix. Même Python, Java, C reconnaissent la syntaxe (0o123), mais c’est archéologique. Seuls les administrateurs système et les développeurs Linux le rencontrent vraiment.
Comment lire chmod 755 et chmod 644
- 755 : propriétaire 7 (rwx), groupe 5 (r-x), autres 5 (r-x). Le propriétaire peut tout faire, les autres lisent et exécutent.
- 644 : propriétaire 6 (rw-), groupe 4 (r--), autres 4 (r--). Fichier lisible partout, modifiable uniquement par le propriétaire.
- 777 : lecture-écriture-exécution pour tous. À éviter pour les fichiers, cela crée des failles de sécurité.
- 700 : lecture-écriture-exécution pour le propriétaire, rien pour les autres. Parfait pour un script privé.
- 400 : lecture seule pour le propriétaire, rien pour les autres. Pour les fichiers importants qu’on ne touche pas.
Convertir 500 en octal, étape par étape
- Divisez 500 par 8 : quotient 62, reste 4.
- Divisez 62 par 8 : quotient 7, reste 6.
- Divisez 7 par 8 : quotient 0, reste 7.
- Lisez les restes de bas en haut : 764. Donc 500 en décimal = 764 en octal.
Questions sur la conversion décimal-octal
Pourquoi un zéro en avant est-il dangereux en programmation ?
En C et en JavaScript, un nombre qui commence par 0 est interprété comme octal. 010 n’est pas dix, c’est 8 en décimal ! Ce bug a causé des erreurs en production. Les langages modernes l’avertissent ou l’interdisent.
Comment passer de chmod en décimal à octal ?
Utilisez la table ou convertissez. 493 en décimal (755 en octal) : divisez par 8, lisez les restes en sens inverse. Ou mémorisez les permissions courantes (755, 644, 777, 700).
L’octal existe encore ailleurs qu’en Unix ?
Très rare. JavaScript, Python et C l’acceptent en syntaxe (0o755), mais personne ne les utilise volontairement. C’est surtout un héritage de Multics et d’UNIX v6.
Et si je confonds octal et décimal dans un script ?
Cela crée un bug silencieux. Le script s’exécute, mais avec les mauvaises permissions. 010 fichier.txt en bash est octal et peut ne pas faire ce que vous attendez.
Peut-on convertir un nombre plus grand que 63 en octal ?
Bien sûr. 512 en décimal = 1000 en octal, 1000 en décimal = 1750 en octal. Pas de limite. Mais les permissions Unix ne vont pas au-delà de 777 (7 = 111 en binaire sur 3 bits).