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".
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 mondechmod 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.