Je me demandais récemment quelle est la différence entre les autorisations de fichiers numériques à trois et quatre chiffres. J'obtiens les autorisations numériques en exécutant stat --format "%a" $file_name
. Quelle est la différence entre 0644 et 644?
Le premier chiffre d'une autorisation à quatre chiffres correspond à la somme de id utilisateur défini (4), id groupe défini (2) et corrigé ( 1). Une autorisation à trois chiffres est semblable à une autorisation à quatre chiffres avec le premier chiffre défini sur zéro. Ainsi:
Si un fichier avec l'ID utilisateur défini est exécuté, il est exécuté comme par le propriétaire du fichier plutôt que par l'utilisateur qui l'exécute. Ainsi, par exemple, /bin/mount
appartient généralement à root et possède les autorisations 4755, où 4 signifie que, même s'il est exécuté par un utilisateur normal, il s'exécutera avec les privilèges du propriétaire (racine).
Il est utile de définir un ID de groupe sur un répertoire pour partager des fichiers.
Le bit collant est utilisé sur des répertoires tels que /tmp
pour que tous les utilisateurs puissent créer des fichiers, tout en empêchant les non-propriétaires de supprimer les fichiers d'autres personnes. Ainsi, les autorisations de /tmp
sont généralement 1777, où 1 signifie que le bit collant est défini.
De man chmod
:
Un mode numérique comprend de un à quatre chiffres octaux (0 à 7), obtenus en additionnant les bits de valeur 4, 2 et 1. Les chiffres omis sont considérés comme des zéros en tête. Le premier chiffre sélectionne l'ID utilisateur défini (4) et les attributs d'ID groupe (2) et d'effacement limité ou collant (1). Le deuxième chiffre sélectionne les autorisations de l'utilisateur propriétaire du fichier: read (4), write (2), et execute (1); le troisième sélectionne les autorisations pour les autres utilisateurs du groupe de fichiers, avec les mêmes valeurs; et le quatrième pour les autres utilisateurs ne figurant pas dans le groupe du fichier, avec les mêmes valeurs.