Outils de développement · Calculatrice Chmod
Ce que chmod ne peut pas exprimer : capacités, fichiers immuables et MAC
· Contexte
chmod unix contrôle d'accès
Les bits de mode sont l'une des nombreuses couches qui décident de la réussite d'une opération. Cet article présente les autres (capacités des fichiers, indicateurs chattr, SELinux et AppArmor) et comment reconnaître le refus de chacun.
Root ne peut pas écrire un fichier 644 — le mode dit oui, chmod ne change rien et l'erreur persiste
Un mode peut autoriser une opération alors que l'opération échoue toujours. La calculatrice décode 644 comme rw-r--r--, ce qui signifie que le propriétaire peut lire et modifier un fichier normal tandis que le groupe et d'autres peuvent le lire. Cela règle uniquement les bits traditionnels fournis. Cela ne prouve ni la propriété du processus, ni l’identité du chemin, ni l’absence d’une autre couche d’application.
Les sources nomment plusieurs contrôles non modélisés : capacités, attributs immuables, stratégie d'accès obligatoire, indicateurs de montage, espaces de noms, filtres d'appel système, ACL et propriété. Rentrer dans un mode ou générer une autre commande chmod ne révèle rien à leur sujet. Vérifiez d’abord l’accord octal, symbolique et matriciel ; si l'échec persiste, rassemblez des preuves de l'environnement au lieu d'élargir les suppositions chmod.
Une opération compatible avec le mode peut toujours échouer pour les couches que cet outil ne peut pas voir
La calculatrice ne modélise aucun ordre parmi les commandes externes. Son modèle de données complet est un entier allant de 0000 octal à 7777, développé en booléens propriétaire, groupe, autre, setuid, setgid et collant. Les explications utilisent cette valeur et ce type de cible. Aucun chemin de décision du noyau, séquence de module de sécurité ou résultat d'appel système n'entre dans le calcul.
Cette limitation fait de la page une première étape contrôlée. Confirmez le mode, distinguez le parcours de l'exécution et notez les lettres à bits spéciaux. L'article 501 ajoute la propriété et l'exécution du répertoire parent en tant que contrôles à proximité. Au-delà de cela, ces sources ne fournissent aucun classement de diagnostic parmi les ACL, les politiques obligatoires, les montages, les attributs, les espaces de noms, les capacités ou les filtres. Un mode compatible ne fait que restreindre la question.
Le calculateur ne modélise pas l'ordre entre les couches d'application externes.
Les capacités du fichier ne correspondent pas aux preuves disponibles. L'implémentation ne contient aucun nom de capacité, analyseur de données, commande d'inspection ou compte rendu de leur interaction avec setuid. Il peut coder le setuid sous la forme 4000 et expliquer un fichier exécutable normal. Cela ne devrait pas devenir une comparaison avec des systèmes de privilèges plus fins que ce référentiel ne modélise ni ne documente.
Ce que la page prouve est concret. Le mode 4755 devient rwsr-xr-x, ses noms récapitulatifs setuid et les affectations ajoutent u+s. Le mode 4644 utilise un S majuscule car l'exécution du propriétaire est absente, exposant une combinaison appelée presque toujours erronée. Les tests établissent ces faits de mode ; les outils externes doivent déterminer si les capacités existent, permettre l’accès ou offrir une meilleure conception.
Les capacités du fichier sont en dehors de l'ensemble source
Les attributs immuables et à ajout uniquement sont également absents du modèle. La calculatrice ne lit pas les attributs du système de fichiers ni ne reconnaît les commandes permettant de les modifier. Sa matrice contient rwx pour le propriétaire, le groupe et autres, ainsi que trois bits spéciaux. Un bit d'écriture visible ne peut donc pas garantir une écriture réussie, et son activation répétée ne peut pas diagnostiquer un attribut que la page n'a jamais observé.
Maintenir la distinction opérationnelle. Si 644 s'affiche correctement, l'écriture du propriétaire existe en mode traditionnel ; il s'agit d'une preuve de représentation, pas d'une écriture terminée. La page n'ouvre pas le chemin d'affichage cité en toute sécurité et n'exécute pas la commande générée. Lorsqu'un nombre suffisant de bits accompagne une panne réelle, inspectez l'objet et le système réels plutôt que d'attribuer un état non observé.
Les attributs immuables et à ajout uniquement sont en dehors de l'ensemble source
Les contextes, profils et journaux de contrôle d'accès obligatoires ne sont pas analysés ici. Les sources mentionnent SELinux et AppArmor uniquement comme exemples de décisions que la calculatrice ne peut pas observer. Ils ne fournissent aucune syntaxe de contexte, aucune sémantique de politique, aucun format de journal ou commande de diagnostic. Mode ne peut donc à lui seul attribuer un déni à l’un ou l’autre système ; les preuves doivent provenir de l’environnement d’application.
Le sélecteur de fichier ou de répertoire renforce cette limite. Il modifie les verbes tels que exécuter, lister, créer, supprimer, saisir et atteindre, mais ne modifie pas l'entier ni ne lit une étiquette de stratégie. Un programme et un répertoire 755 partagent rwxr-xr-x tout en décrivant différentes actions ordinaires. Aucune des deux explications ne prédit les résultats de la politique obligatoire, conservez donc le mode vérifié et consultez les journaux de la plateforme.
Les contextes et journaux de contrôle d'accès obligatoires se trouvent en dehors de l'ensemble source
Un mode fourni ne peut pas révéler les options de montage. La calculatrice accepte le texte octal ou symbolique et un chemin facultatif utilisé uniquement pour l'affichage des commandes. Il n'ouvre jamais ce chemin, n'identifie jamais son montage ni ne lit la configuration. Les sources répertorient les comportements en lecture seule, sans exécution et sans setuid comme problèmes externes, mais ne fournissent aucun détail sur la plate-forme pour diagnostiquer ces politiques.
Le texte généré peut inclure un mode octal, un chemin entre guillemets et un indicateur -R affiché, mais aucun ne prouve qu'un système de fichiers honorera la demande. Même une valeur de bit spécial qui effectue parfaitement un aller-retour peut être inefficace selon des règles invisibles. Traitez la commande comme un artefact de révision, puis vérifiez le système de fichiers cible avant de revendiquer les autorisations modifiées ou l'exécution devenue possible.
Les options de montage ne sont pas découvertes à partir d'un mode fourni
Les espaces de noms et les filtres d'appel système n'apparaissent nulle part dans le modèle de mode. Les entrées ne contiennent aucune identité de processus, contexte de conteneur, liste d'appels système ou configuration d'exécution. La page ne peut pas savoir si un processus voit le même chemin, atteint l'objet attendu ou si un appel est filtré. Ces questions diffèrent fondamentalement de l'ajout de 4, 2 et 1 dans les triples d'autorisation.
Ne déduisez pas les mécanismes d'exécution d'une conversion réussie. La validation couvre les chiffres octaux mal formés, la longueur symbolique et les lettres égarées. Un résultat valide signifie uniquement que le texte correspond à un mode représentable ; il ne valide pas un environnement d'exécution. Étant donné que le texte shell généré est inerte, l’analyse des espaces de noms et des filtres nécessite toujours des preuves d’exécution absentes de ces sources.
Les espaces de noms et les filtres d'appel système ne sont pas représentés
Commencez par mode car il est compact et facile à activer ou à désactiver. Traduisez la valeur, inspectez chaque classe, distinguez le fichier du répertoire et exposez tout préfixe de bit spécial. L’accord entre octal, symbolique, matriciel, résumé et explication rend la question traditionnelle bien formée. Cela peut révéler un élément manquant ou excessif, mais pas une autorité exclusive.
Continuez uniquement avec des preuves du système réel. La propriété, les ACL, les attributs, la stratégie obligatoire, les montages, les capacités, les espaces de noms, les filtres et les règles d'application ne sont pas découverts ici. L'aperçu ne lit ni ne modifie un fichier. La conclusion disciplinée est étroite : régler localement l'arithmétique du mode fourni, puis enquêter sur l'application externe au lieu de parcourir des valeurs chmod plus larges sans connaître le refus.