Français

Outils de développement · Calculatrice Chmod

Comment lire les autorisations ls -l et les convertir en mode octal

· Comment ça marche

chmod unix flux de travail du développeur

Chaînes de mode de style ls affichées sous la forme d'un diagramme de bits d'autorisation Unix distinct
Illustration vectorielle originale de ToolAcre

La chaîne de dix caractères au début de ls -l est un type de fichier plus neuf bits d'autorisation. Cet article montre comment le décoder et produire le mode octal souhaité par chmod, y compris les lettres à bits spéciaux.

Un ticket avec -rw-r-----+ collé — vous devez savoir s'il faut dire à l'utilisateur d'exécuter chmod 640 ou autre chose

Une chaîne collée telle que -rw-r-----+ contient plus que ce que cet analyseur accepte. Le noyau reconnu est un corps d'autorisation de neuf caractères, éventuellement précédé d'un caractère de type de fichier pris en charge. Le plus final rend la saisie trop longue et est rejetée. La suppression de ce marqueur externe laisse -rw-r-----, qui se convertit en 640 : le propriétaire read/write, groupe en lecture et aucune autorisation pour les autres.

Cette conversion ne décode pas ce que représente le plus au-delà de l'avertissement de l'article 501 selon lequel une longue liste peut l'utiliser pour les ACL. La calculatrice n'a pas d'entrées ou de masque ACL. Il n’inspecte pas non plus la machine, le propriétaire, le groupe ou le chemin du ticket. Le mode 640 est donc la valeur d'autorisation de base représentée par le noyau accepté, et non une réponse complète sur l'accès effectif.

Le premier caractère est le type — tiret, d, l, c, b, p et s, et pourquoi il ne fait pas partie du mode

Le premier caractère facultatif est traité comme un marqueur de type plutôt que comme un bit d'autorisation. L'analyseur reconnaît -, d, l, b, c, p, s, D et ?. Lorsqu'un élément apparaît devant neuf positions d'autorisation valides, il est supprimé pour des raisons arithmétiques. Le propriétaire, le groupe et les autres triplets résultants déterminent à eux seuls la valeur octale et les sélections matricielles.

Ce comportement est facile à vérifier avec des entrées équivalentes. rwxr-x--- et -rwxr-x--- produisent tous deux 750 car le tiret de début n'apporte aucun bit de mode. Un marqueur de répertoire peut précéder le même corps tout en produisant le même entier. Le sélecteur de cible contrôle la formulation explicative séparément, donc accepter un caractère de type ne signifie pas que le navigateur a découvert ou ouvert cet objet.

Neuf caractères répartis en trois groupes : propriétaire, groupe, autres, toujours dans l'ordre rwx, avec un tiret pour chaque bit désactivé

Les neuf positions d'autorisation forment trois triples fixes dans l'ordre propriétaire, groupe et autre. Dans chaque triplet, la lecture occupe la première position, l'écriture la seconde et l'exécution de la troisième. Un tiret signifie que le bit correspondant est désactivé. La validation spécifique à la position rejette une lettre égarée au lieu de la deviner, de sorte qu'un r en position d'écriture ne peut pas silencieusement devenir une autre autorisation.

Chaque triple accepté correspond à un chiffre octal selon les poids de l'article 501 : la lecture est 4, l'écriture est 2 et l'exécution est 1. La matrice affiche les mêmes drapeaux que les cases à cocher et reconstruit l'entier lorsqu'on change. Les lettres spéciales ne sont acceptées que dans les positions d'exécution, préservant setuid, setgid ou sticky avec l'état d'exécution sous-jacent.

Exemple concret : -rwxr-x--- à 750 — attribuer 4, 2, 1 à chaque lettre et additionner par groupe

Convertissez -rwxr-x--- en ignorant le marqueur de type principal et en divisant le corps en rwx, r-x et ---. Le propriétaire possède 4+2+1, produisant 7. Le groupe possède 4+1, produisant 5. L'autre n'a pas de bit activé, produisant 0. La calculatrice renvoie 750 et sélectionne les neuf cases d'autorisation ordinaires correspondantes.

La contre-vérification doit atterrir sur le même corps de texte. Entrez 750 et le champ symbolique devient rwxr-x--- ; choisissez un marqueur de fichier normal pour le formulaire affiché et il devient -rwxr-x---. L'aperçu de l'affectation a une syntaxe différente : u=rwx,g=rx,o=. Les trois points de vue décrivent un mode fixe, tandis que la propriété et la sagesse de son application restent en suspens.

Les signes plus et at de fin — les entrées ACL signifiant + existent, le @ signifiant attributs étendus sur macOS, ni l'un ni l'autre ne faisant partie du mode

Les signes plus et at sont des marqueurs de métadonnées dans le plan, mais le fait implémenté est plus étroit : cet analyseur rejette l'un ou l'autre car l'entrée acceptée se termine après le corps de l'autorisation. L’article 501 identifie spécifiquement un plus final avec les ACL. CHMOD_SOURCES ne fournit aucune interprétation équivalente pour un signe arobase, donc cette section ne lui attribue pas une signification de système d'exploitation non prise en charge par le référentiel.

Ne retirez aucun marqueur aveuglément lorsqu'un accès efficace est important. Au lieu de cela, séparez le noyau de neuf ou dix caractères accepté pour la conversion en mode de base et examinez tout reste avec des preuves du système d'origine. La calculatrice peut montrer que rw-r----- signifie 640. Il ne peut pas expliquer des métadonnées supplémentaires, lire des attributs étendus ou déterminer si un autre mécanisme de contrôle d'accès modifie ce qu'un utilisateur ou un processus peut faire.

Les signes plus et at sont des marqueurs de métadonnées rejetés par cet analyseur.

Les commandes de statistiques externes ne sont pas exécutées par la calculatrice du navigateur. La page n'a pas d'accès à l'exécuteur de commandes ou au système de fichiers ; son champ de chemin existe uniquement pour construire le texte chmod cité à afficher. Par conséquent, il ne peut pas récupérer un mode actuel, comparer le résultat d'une commande spécifique à la plate-forme ou certifier qu'une chaîne collée provient d'un utilitaire particulier. L'utilisateur doit fournir la valeur à convertir.

Une fois qu'un mode digne de confiance est fourni, le navigateur fournit une vérification de représentation indépendante. Entrez le noyau symbolique et comparez son résultat octal, sa matrice, son résumé et son aperçu d'affectation. L’accord détecte les erreurs de transcription et d’arithmétique dans le format pris en charge. Il ne valide pas la commande de collection externe, ne révèle pas la propriété ou ne prouve pas que les autorisations représentées sont effectives sur l'objet à partir duquel le texte a été copié.

Les commandes de statistiques externes ne sont pas exécutées par la calculatrice du navigateur.

Le décodage ACL reste en dehors de la route. Son modèle contient des bits propriétaire, groupe, autre et trois bits spéciaux, sans entrées nommées ni masque ACL. Le décodage des autorisations Windows est également absent : il n'existe pas de modèle d'identité Windows, de syntaxe d'entrée de contrôle d'accès ou de découverte de plate-forme. Un noyau de style Unix à neuf positions peut être converti, mais aucun système d'autorisation supplémentaire ne peut être reconstruit à partir de ce résultat.

Cette limite limite également le diagnostic. Un mode de base qui semble suffisant ne prouve pas qu'une ACL ou une autre politique n'est pas pertinente, tandis qu'un mode restrictif n'identifie pas toutes les autorisations possibles. Le calculateur règle uniquement les douze bits représentés. Utilisez sa sortie pour indiquer avec précision le mode ordinaire, puis réservez les réclamations sur l'autorisation effective aux outils et à la documentation qui exposent réellement le système d'autorisation externe.

Le décodage des autorisations ACL et Windows reste en dehors de la route

La lecture d'un mode de style ls devient mécanique une fois le noyau accepté isolé. Supprimez un caractère de premier plan reconnu, divisez les neuf positions restantes en propriétaire, groupe et autres, et lisez au total 4, écrivez 2 et exécutez 1 dans chaque triple. La calculatrice effectue cette conversion et valide les lettres spécifiques au poste, y compris les formulaires s, S, t et T implémentés.

Gardez la conclusion proportionnelle à l'entrée. Une conversion réussie prouve que la chaîne acceptée correspond systématiquement à un mode octal, une matrice, un résumé et une affectation générée. Il n'exécute pas stat, n'inspecte pas le chemin, ne décode pas un marqueur de fin, n'identifie pas la propriété ou n'applique pas de chmod. Ces limites rendent le résultat utile : il est exact sur l’arithmétique du mode de base et silencieux sur les preuves qu’il n’a jamais collectées.