web-dev-qa-db-fra.com

Quel est le premier chiffre de la notation d'autorisation de fichier octal Unix à 4 chiffres?

3 chiffres:

644
ugo (user group other)

4 chiffres:

0644
?ugo (??? user group other)

Quel est le premier chiffre octal dans la notation d'autorisation de fichier octal Unix à 4 chiffres?

41
Steven T. Snyder

De man chmod:

Un mode numérique comprend de un à quatre chiffres octaux (0-7), dérivés en additionnant les bits avec les valeurs 4, 2 et 1. Tout chiffre omis est supposé être des zéros non significatifs. Le premier chiffre sélectionne l'ID utilisateur défini (4) et l'ID groupe défini (2) et les attributs collants (1).

Que sont "définir l'ID utilisateur", "définir l'ID du groupe" et "collant", demandez-vous?

setuid/setgid :

setuid et setgid (abréviation de "définir l'ID utilisateur lors de l'exécution" et "définir l'ID du groupe lors de l'exécution", respectivement) sont des indicateurs de droits d'accès Unix qui permettent aux utilisateurs d'exécuter un exécutable avec les autorisations du propriétaire ou du groupe de l'exécutable. Ils sont souvent utilisés pour permettre aux utilisateurs d'un système informatique d'exécuter des programmes avec des privilèges temporairement élevés afin d'effectuer une tâche spécifique. Bien que les privilèges d'ID utilisateur ou d'ID de groupe fournis ne soient pas toujours élevés, ils sont au minimum spécifiques.

De plus, lorsqu'il est appliqué à un répertoire, le setuid/setgid fait que les nouveaux fichiers créés dans le répertoire héritent respectivement de l'uid ou du gid du répertoire parent. Ce comportement varie en fonction de la saveur d'Unix. Par exemple, Linux honore le setgid, mais ignore le setuid sur les répertoires.

Et collant :

Aujourd'hui, l'utilisation la plus courante du bit collant concerne les répertoires. Lorsque le bit collant est défini, seul le propriétaire de l'élément, le propriétaire du répertoire ou le superutilisateur peut renommer ou supprimer des fichiers. Sans l'ensemble de bits collants, tout utilisateur disposant des autorisations d'écriture et d'exécution pour le répertoire peut renommer ou supprimer les fichiers contenus, quel que soit le propriétaire. En règle générale, cela est défini dans le répertoire/tmp pour empêcher les utilisateurs ordinaires de supprimer ou de déplacer les fichiers d'autres utilisateurs.

49
Handyman5

Setgid a une autre fonction très importante sur laquelle je m'appuie quotidiennement mais qui n'est pas incluse dans l'extrait de Handyman5 (la citation est tirée de la même page liée ci-dessus):

Les drapeaux setuid et setgid, lorsqu'ils sont définis sur un répertoire, ont une signification entièrement différente.

La définition de l'autorisation setgid sur un répertoire (chmod g + s) fait en sorte que les nouveaux fichiers et sous-répertoires créés en son sein héritent de son ID de groupe, plutôt que l'ID de groupe principal de l'utilisateur qui a créé le fichier (l'ID du propriétaire n'est jamais affecté, seul le ID de groupe). Les sous-répertoires nouvellement créés héritent du bit setgid.

Ainsi, cela permet un espace de travail partagé pour un groupe sans l'inconvénient d'exiger des membres du groupe de changer explicitement leur groupe actuel avant de créer de nouveaux fichiers ou répertoires. Notez que la définition de l'autorisation setgid sur un répertoire affecte uniquement l'ID de groupe des nouveaux fichiers et sous-répertoires créés après la définition du bit setgid et n'est pas appliqué aux entités existantes. La définition du bit setgid sur les sous-répertoires existants doit être effectuée manuellement, avec une commande telle que la suivante:

[root@foo]# find /path/to/directory -type d -exec chmod g+s {} \;

chmod g+s signifierait l'ajout d'un 2 à l'avant de la valeur octale, ce qui rendrait un répertoire disposant de 775 autorisations (drwxrwxr-x) en 2775 (drwxrwsr-x).

12
Jay Allen

En plus des autres réponses, un 0 en tête est une convention utilisée pour dire qu'un nombre est octal. Il n'est pas nécessaire ici car les autorisations de fichiers sont toujours exprimées en octal mais cela peut de toute façon être une autre raison pour laquelle il est présent.

4
jlliagre

Voici un Linux/Unix facile à utiliser calculateur d'autorisations pour vous aider à déterminer les autorisations d'un fichier ou d'un répertoire.

2
vegasbrianc