Français

Outils de développement · Calculatrice Chmod

Comment les chiffres octaux chmod correspondent aux bits d'autorisation rwx (4, 2, 1)

· Comment ça marche

chmod Unix workflow de développeur

Chiffres d'autorisation octaux divisés en bits de propriétaire, de groupe et autres bits rwx
Illustration vectorielle originale de ToolAcre

Chaque chiffre octal est constitué de trois drapeaux binaires déguisés. Cet article montre l'arithmétique qui transforme 7 en rwx et 5 en r-x, afin que vous puissiez lire et écrire n'importe quel mode sans table de recherche.

Le numéro que vous continuez à coller - chmod 755 fonctionne, mais vous ne pouvez pas dire ce que les 5 accordent ni à qui

L'exécution de chmod 755 parce qu'une réponse du forum l'indique peut accorder plus d'accès que ce dont une application a besoin. Un mode Unix est un codage compact indiquant qui peut lire, écrire ou exécuter un fichier ; le numéro n'est pas un paramètre arbitraire à coller chaque fois que l'autorisation est refusée. Avant de le modifier, demandez quelle identité possède le fichier, sous quel groupe un processus s'exécute et quelle action a réellement échoué. Un mode syntaxiquement valide ne résout pas un mauvais propriétaire ou une autorisation d'exécution manquante dans le répertoire parent.

Trois classes, trois chiffres : le propriétaire, le groupe et les autres reçoivent chacun un chiffre octal dans un ordre fixe

Trois chiffres octaux décrivent trois classes dans l'ordre : propriétaire, groupe, autres. Dans 640, le propriétaire obtient 6, le groupe 4 et tous les autres obtiennent 0. « Autre » ne signifie pas root ou un compte de service ; cela signifie des identités ne correspondant ni au propriétaire ni au groupe du fichier sous les contrôles ordinaires des bits de mode. Un quatrième chiffre facultatif gère les modes spéciaux tels que setuid, setgid et sticky, qui est un sujet distinct et ne doit pas être déduit des trois derniers chiffres.

Lisez 4, écrivez 2, exécutez 1 - pourquoi les poids sont des puissances de deux et comment ils s'ajoutent à n'importe quelle valeur de 0 à 7

Chaque classe comporte trois bits avec des poids read=4, write=2 etexecute=1. Ajoutez uniquement les poids autorisés : 7=4+2+1 (rwx), 6=4+2 (rw-), 5=4+1 (r-x) et 0=---. Ce sont des puissances de deux, donc aucune combinaison de trois drapeaux indépendants ne produit le même total qu’un autre. L'exécution du répertoire signifie la traversée, et non « exécuter ce dossier » ; un répertoire en a souvent besoin pour que les utilisateurs puissent accéder aux fichiers qu'il contient, même lorsque le fichier lui-même dispose d'une autorisation de lecture.

Exemple concret : décoder 640 et 751 à la main – transformer chaque chiffre en un triple binaire puis en lettres rwx

Décoder 640 par classe : 6 -> binaire 110 -> rw- ; 4 -> 100 -> r--; 0 -> 000 -> ---. Les neuf lettres d'autorisation sont rw-r-----. Décoder 751 : 7 -> rwx, 5 -> r-x, 1 -> --x, donnant rwxr-x--x. Remarquez comment « autre » en 751 peut parcourir ou s'exécuter sans lecture ni écriture. Cela peut être intentionnel pour un répertoire mais mérite d'être examiné sur un fichier sensible. Utilisez la calculatrice Chmod pour comparer les sorties octales et symboliques plutôt que de mémoriser des exemples.

Dans l'autre sens : de ls -l à octal — lire rwxr-x --- et ajouter les poids par classe

Travaillez à rebours à partir d'un mode symbolique tel que rwxr-x---. Le propriétaire a 4+2+1=7, le groupe 4+1=5 et les autres 0 ; le résultat est 750, et non 755. Un long affichage ls -l a également un caractère de type de fichier de début et peut afficher un + de fin pour les ACL, donc n'introduisez pas la chaîne d'affichage entière dans une arithmétique à trois chiffres. Pour un répertoire, prévoyez la lecture/écriture/exécution séparément pour chaque classe au lieu de copier le mode d'un fichier voisin.

Ce que cela ne couvre pas : le quatrième chiffre de premier plan pour setuid, setgid et sticky, ainsi que les ACL marqués d'un signe plus.

Cette procédure pas à pas en sept sections couvre les neuf bits d'autorisation ordinaires. Cela n'explique pas un 4, 2 ou 1 en tête pour setuid, setgid et sticky ; ces bits modifient le comportement d'un programme ou d'un répertoire et sont représentés par s/S ou t/T dans la sortie symbolique. Les listes de contrôle d'accès peuvent accorder ou refuser l'accès au-delà de cette simple image. Le calculateur ToolAcre prend en charge des bits spéciaux supplémentaires, mais vous devez lire leur explication séparée avant de les activer sur un système de production.

À retenir : un mode est composé de neuf bits que vous pouvez calculer – et la calculatrice Chmod vous permet de vérifier la conversion dans les deux sens dans le navigateur.

Un mode, c'est neuf drapeaux que vous pouvez calculer, pas une incantation. La calculatrice Chmod convertit les formes octales et symboliques dans votre navigateur afin que vous puissiez tester un mode proposé avant d'exécuter vous-même une commande chmod. L'outil ne modifie pas les autorisations sur votre ordinateur : il fournit la chaîne et le raisonnement, tandis que votre shell et votre système de fichiers restent sous votre contrôle.