Français

Outils de développement · Calculatrice Chmod

Le modèle d'autorisation Unix : du chmod des années 1970 aux bits du mode POSIX

· Contexte

chmod unix contrôle d'accès

le modèle de mode traditionnel affiché sous la forme d'un diagramme de bits d'autorisation Unix distinct
Illustration vectorielle originale de ToolAcre

Le modèle Owner/group/others a survécu pendant des décennies avec remarquablement peu de changements. Cet article retrace son origine, ce que POSIX a standardisé et pourquoi il convient toujours à la plupart des emplois.

Une conception des années 1970 dans votre déploiement des années 2020 : chaque conteneur et chaque exécuteur CI parle toujours rwx, et il est utile de savoir pourquoi

Les déploiements actuels présentent toujours des modes tels que 0644 et des chaînes symboliques telles que rw-r--r--, mais ce référentiel n'est pas une archive historique. Sa preuve est la représentation implémentée : douze bits, conversion déterministe et validation des entrées octales et symboliques. Les dates, les inventeurs, les brevets et les revendications concernant chaque système dérivé d'Unix nécessitent des sources non fournies ici.

La calculatrice offre donc une vue au présent d'un modèle d'autorisation compact. Un entier pilote le propriétaire, le groupe et les autres contrôles, ainsi que setuid, setgid et sticky. La sortie peut être vérifiée sous forme octale, symbolique et matricielle. L'accord prouve une conversion cohérente, et non l'origine, l'universalité ou l'application du modèle.

Une notation de longue durée apparaît dans les déploiements actuels, mais ce référentiel n'est pas une source d'historique

Neuf bits ordinaires forment trois classes égales. Le propriétaire, le groupe et les autres reçoivent chacun des positions de lecture, d'écriture et d'exécution avec les poids 4, 2 et 1. La calculatrice conserve cet ordre partout : dans les trois derniers chiffres octaux, la ligne symbolique de neuf caractères, la matrice de cases à cocher et la description en anglais simple générée pour un fichier ou un répertoire.

Un mode de 640 démontre la structure sans revendication de lignée. Le propriétaire 6 signifie lecture et écriture, le groupe 4 signifie lecture et les autres 0 signifie aucune autorisation ordinaire, produisant rw-r-----. Comme l'explique l'article 501, ce sont des indicateurs calculables ; l'identification du propriétaire, du groupe ou du processus réel reste en dehors de la conversion.

Le modèle implémenté comporte neuf bits ordinaires répartis en trois classes

Setuid est implémenté en tant que masque 4000. Sur un fichier normal, le moteur de rendu place s dans la position d'exécution du propriétaire lorsque setuid et propriétaire d'exécution sont présents. Si setuid est présent sans exécution du propriétaire, il y place S à la place, préservant la différence importante entre un bit spécial et le bit d'exécution ordinaire en dessous.

La description du fichier explique les minuscules comme une exécution avec l'identité du propriétaire du fichier et marque la combinaison majuscule comme n'ayant rien à exécuter. Ces déclarations décrivent le résultat de cette implémentation. Le référentiel ne fournit aucun dossier de brevet ni historique principal, cette section n'attribue donc pas le mécanisme ni la date de son introduction. Le comportement setuid

est implémenté ; l'historique des brevets ne provient pas

Les explications d'annuaire utilisent la même valeur numérique mais des verbes différents pour les bits ordinaires. Lire les entrées des listes, écrire des couvertures en créant, renommer et supprimer des entrées, et exécuter des couvertures entrant dans le répertoire et atteignant le contenu nommé. L'implémentation décrit également setgid sur un répertoire comme faisant en sorte que les fichiers nouvellement créés héritent du groupe de ce répertoire.

Sticky est représenté par 1000 et occupe l'autre position d'exécution sous la forme t ou T. Pour un répertoire, l'outil décrit la suppression restreinte pour les entrées partagées. Ce sont des sémantiques implémentées présentées par le calculateur ; aucun historique de branche ou lignage inter-systèmes n'est établi, et aucun système de fichiers actif n'est interrogé pour confirmer le comportement local.

Le comportement des bits spéciaux de l'annuaire est décrit sans revendication de lignée

La source nomme directement chaque masque : 0400, 0200 et 0100 pour le propriétaire ; 0040, 0020 et 0010 pour le groupe ; 0004, 0002 et 0001 pour les autres. Setuid, setgid et sticky ajoutent 4000, 2000 et 1000. La conversion est un test de bits et une combinaison au niveau du bit plutôt qu'un appel à une norme externe.

Les règles de saisie sont tout aussi concrètes. Octal accepte un à quatre chiffres de 0 à 7, avec en option 0 ou des formulaires de style 0o. La saisie symbolique accepte neuf positions ou dix avec un caractère de type de fichier reconnu. Le référentiel n'établit pas que chaque implémentation ou norme accepte exactement la même grammaire de surface.

Les masques de bits nommés et la sémantique de conversion sont vérifiés ; les allégations relatives aux normes universelles ne sont pas

Le modèle compact a des limites délibérées. Il fournit une classe propriétaire, une classe de groupe et une autre classe, mais aucune entrée d'utilisateur nommé, entrée de groupe nommé, masque ACL ou ACL par défaut. Il n’a également aucun ensemble de capacités. Ces mécanismes ne peuvent pas être déduits d'une chaîne rwx apparemment ordinaire ou d'une conversion octale réussie.

La génération de commandes n'étend pas le modèle. Il émet un argument octal ou des clauses explicites u=, g= et o=, en ajoutant u+s, g+s ou +t si nécessaire. Le résultat reste le texte affiché. Un examen responsable rassemble séparément toutes les preuves d'ACL, de capacité, de propriété et d'application avant de traiter le mode comme un compte de contrôle d'accès complet.

Les ACL et les capacités se situent en dehors du modèle de mode implémenté

Cet ensemble source ne contient aucune comparaison prise en charge avec Windows, VMS, Plan 9 ou d'autres historiques d'autorisations du système d'exploitation. Omettre ces récits est plus précis que de présenter les contrastes retenus comme des faits. Le calculateur démontre uniquement la représentation de mode qu'il implémente, et ses tests peuvent établir un comportement de conversion plutôt que l'évolution de systèmes non liés.

La même prudence s'applique au langage à compatibilité étendue. Un caractère de type de fichier principal reconnu peut être analysé avant les neuf positions d'autorisation, mais cela ne prouve pas le formatage ls universel. Utilisez le résultat comme une lecture précise de la notation acceptée de cet outil, puis consultez la documentation faisant autorité de la plate-forme pour connaître le comportement au-delà de ces limites basées sur la source.

Les autres historiques d'autorisations du système d'exploitation sont omis sans sources

Ce qui survit ici à l'examen minutieux, c'est la compacité du modèle mis en œuvre. Douze bits nommés couvrent trois classes d'autorisations ordinaires et trois indicateurs spéciaux, tandis que les vues octales et symboliques exposent le même entier sous différentes formes. Les chiffres invalides ou les lettres symboliques égarées sont rejetés plutôt que réparés silencieusement, rendant les erreurs visibles lors de la conversion.

Cela suffit pour un plat à emporter pratique sans leçon d'histoire. Décodez le mode, inspectez chaque classe et remarquez si s, S, t ou T remplace une position d'exécution. Arrêtez-vous ensuite là où s'arrêtent les preuves : la calculatrice explique la représentation et le texte généré, tandis que la propriété, la politique, le comportement du système de fichiers et la provenance historique nécessitent d'autres sources.