Chmod par lettres contre numéros

8

Un collègue m'a récemment demandé d'utiliser chmoddes lettres plutôt que des chiffres. Outre l'avantage évident de lisibilité, y a-t-il une raison particulière d'utiliser des lettres plutôt que des chiffres?

Gautam
la source

Réponses:

13

La chmodnotation symbolique est plus fine que la notation octale, permettant la modification de bits de mode spécifiques tout en laissant les autres bits de mode intacts.

La notation symbolique se compose de trois éléments:

chmod [references][operator][modes] file

Le se referencescompose d'une combinaison des lettres ugoa, qui spécifient quel utilisateur l'accès au filesera modifié: l'utilisateur qui le possède ( u), les autres utilisateurs du groupe du fichier ( g), les autres utilisateurs n'appartenant pas au groupe du fichier ( o) ou tous les utilisateurs ( a). Si le referencescomposant est omis, il s'applique par défaut à tous les utilisateurs, mais seules les autorisations autorisées par le umasksont modifiées.

La + operatorentraîne l'ajout des bits de mode de fichier spécifiés aux bits de mode de fichier existants de chaque fichier; -provoque leur suppression; et =les amène à être ajoutés et les bits non spécifiés à enlever, à l' exception setuidet les setgidbits positionnés pour les répertoires, sauf si explicitement spécifié.

Le modeconsiste en une combinaison des lettres rwxXst, qui correspondent aux fonctions lecture ( r), écriture ( w), exécution (ou recherche de répertoires) ( x), exécution / recherche uniquement si le fichier est un répertoire ou a déjà l'autorisation d'exécution pour un utilisateur ( X), setuidou setgid(selon les références spécifiées) ( s) et un indicateur de suppression restreint ou un bit collant ( t). Alternativement, le modepeut consister en l'une des lettres ugo, auquel cas le modecorrespond aux autorisations actuellement accordées au propriétaire ( u), au membre du groupe du fichier ( g) ou aux autorisations d'utilisateurs dans aucune des catégories précédentes ( o).

Exemples

En supposant que le jeu d'autorisations pour fileest0764/-rwxrw-r--

Supprimer l'autorisation des autres utilisateurs ne faisant pas partie du groupe de fichiers:

  • Octal: chmod 760 file

    Notez comment les autorisations existantes inchangées doivent être répétées lors de l'utilisation de la notation octale.

  • Symbolique: chmod o-rwx file

    Avec la notation symbolique, les autorisations de fichier existantes n'ont pas d'importance.

Ensemble setuid:

  • Octal: chmod 4764 file

  • Symbolique: chmod u+s file

Ensemble setgid:

  • Octal: chmod 2764 file
  • Symbolique chmod g+s file
Thomas Nyman
la source
1

L'utilisation des lettres vous permet d'activer et de désactiver des bits individuels sans modifier les autres bits.

Disons que j'ai le répertoire suivant: drwxrwsr-x 6 f261-01a g261-01a 4096 12 septembre 17:51 / home / teams / 261 / f261-01a

Si je veux désactiver l'autorisation de lecture pour d'autres et que je veux utiliser des chiffres, je pourrais le faire rapidement chmod 751. Sauf que je viens de désactiver le bit setgid sur le répertoire. Oops.

Si, cependant, j'utilise chmod o-r, je ne désactive que le bit de lecture que je voulais et le bit setgid du répertoire reste activé.

Il est également utile si vous souhaitez activer setuid, setgid ou sticky bits sur un fichier ou un répertoire. Surtout si vous le faites si rarement, vous avez du mal à vous rappeler quel bit est lequel dans le 4e octet.

Cela dépend donc de ce que vous faites. Je préfère toujours utiliser des chiffres lorsque je ne fais que définir des autorisations et je me fiche de ce qui est là pour commencer. Mais si vous basculez des bits individuels, la notation des lettres est beaucoup plus facile.

kurtm
la source