web-dev-qa-db-fra.com

Autorisations Unix - Qu'est-ce EXACTEMENT le "groupe de propriétaires" (note: singulier)?

Je programme un système de fichiers Fuse.
Jusque là, tout à fait normal, n'a pas rencontré de problèmes insolubles (sauf les performances).

Cependant, j'ai lu les articles suivants:
http://linuxcommand.org/lts0070.php
http://www.perlfect.com/articles/chmod.shtml
http://mason.gmu.edu/~montecin/UNIXpermiss.htm
http://www.linux.com/learn/tutorials/309527-understanding-linux-file-permissions
http://www.tutorialspoint.com/unix/unix-file-permission.htm
https://kb.iu.edu/d/abdb

Et j'ai la question suivante:
Étant donné une chaîne générique unix-permission-string -
Je comprends que la chaîne (après le premier caractère) est partitionnée en groupes de 3 (rwx) pour

owner
owner_group
all/world/anyone

Cependant, l'un des articles stipule explicitement qu'un utilisateur peut appartenir à N groupes.
Alors pourquoi le singulier ici pour propriétaire groupe (pas groupes)? Quel est exactement le groupe de propriétaires, si je (le créateur du fichier et donc le propriétaire) suis dans plusieurs groupes?

Disons que je suis membre du groupe A, du groupe B et du groupe C.
Maintenant, je crée un fichier quelque part.

Puisque l'expression owner_group est singulière et n'est pas plurielle , à quel groupe les autorisations owner_group sont-elles appliquées?
A XOR B XOR C , ou tous, ou aucun d'entre eux?
Si cela s'applique à un seul (comme l'indique le singulier), comment détermine-t-on le groupe auquel les droits sont attribués?

J'ai le sentiment distinct que je ne comprends pas vraiment quelque chose ici, ou que je comprends mal le sens du terme "groupe de propriétaires".

4
WitchCraft
  • Un utilisateur peut être membre de plusieurs groupes.
  • Un fichier appartient à exactement un groupe et un utilisateur.
  • Si l'utilisateur est membre du groupe de propriétaires du fichier (c'est-à-dire que le groupe foo est propriétaire du fichier et que l'un des groupes de l'utilisateur est foo), les autorisations de groupe respectives s'appliquent à cet utilisateur (sauf si remplacé par les autorisations du propriétaire).

Le groupe de propriétaires appartient à la propriété du fichier. Considérer:

$ stat /usr/bin/crontab 
  File: ‘/usr/bin/crontab’
  Size: 35984       Blocks: 72         IO Block: 4096   regular file
Device: 803h/2051d  Inode: 131439      Links: 1
Access: (2755/-rwxr-sr-x)  Uid: (    0/    root)   Gid: (  103/ crontab)
Access: 2015-02-05 20:20:43.438507538 +0530
Modify: 2013-02-09 12:32:23.000000000 +0530
Change: 2014-09-30 19:22:09.508515013 +0530
 Birth: -

Cela indique que le fichier appartient à l'utilisateur root et au groupe crontab.

Supposons que je sois membre du groupe A, du groupe B et du groupe C. Maintenant, je crée un fichier quelque part. ... [À] quel groupe obtient les autorisations owner_group?

Cela dépend de votre groupe principal au moment où vous avez créé ce fichier. Le groupe principal est le premier répertorié lorsque vous exécutez la commande groups. Habituellement, cela est déterminé par votre GID. Toutefois, vous pouvez définir temporairement l'un de vos autres groupes en tant que principal à l'aide de la commande newgrp. Par exemple:

$ groups 
muru adm cdrom Sudo dip plugdev lpadmin sambashare
$ rm foo; touch foo
$ stat -c %G foo  # this prints the owner group of the file
muru
$ newgrp Sudo   
$ rm foo; touch foo
$ stat -c %G foo
Sudo

J'ai le sentiment distinct que je ne comprends pas vraiment quelque chose ici, ou que je comprends mal le sens du terme "groupe de propriétaires".

Que le groupe de propriétaires est un attribut du fichier, pas l'utilisateur.

Je comprends que la chaîne (après le premier caractère) est partitionnée en groupes de 3 (rwx) pour

owner
owner_group
all/world/anyone

Légèrement éteint: le troisième champ est autres, pas tous. Autres couvre tout le monde sauf le propriétaire du fichier et les membres du groupe de propriétaires du fichier. La distinction entre en jeu lors de l’utilisation des modes symboliques avec chmod:

  • chmod a-x enlève les permissions d'exécution à tout le monde
  • chmod o-x enlève l'autorisation d'exécution à tous les autres, tout en laissant intactes les autorisations d'exécution du propriétaire et du groupe de propriétaires.

Enfin, une note sur les groupes privés d'utilisateurs. Les UPG sont assez courants sur les ordinateurs de bureau, mais ne les prenez pas pour acquis ailleurs. Si les fichiers UPG sont activés, il est probable que le groupe principal et le nom d'utilisateur de l'utilisateur aient les mêmes identifiant et nom numériques, et qu'il existe un groupe unique pour chaque utilisateur. C'est tout.

12
muru