web-dev-qa-db-fra.com

Différence entre les autorisations de fichier à trois et quatre chiffres?

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?

9
NerdOfCode

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:

  • 0644 est exactement le même que 644.
  • 1644 est comme 644 mais le bit collant est également défini
  • 4644 est comme 644 mais le bit ID utilisateur défini est également activé.

Exemples d'utilisation des autorisations à quatrième chiffre

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.

Documentation

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.

10
John1024