Я программирую файловую систему Предохранителя.
До сих пор настолько нормальный, не встретился с неразрешимыми проблемами (кроме производительности).
Однако я прочитал следующие статьи:
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
И у меня есть следующий вопрос:
Учитывая универсальную строку разрешения Unix -
Я понимаю, что строка (после первого символа) делится в группы 3 (rwx) для
owner
owner_group
all/world/anyone
Однако в одной из статей явно говорится, 1 пользователь может быть в группах N.
Итак, почему исключительное здесь для группы владельца (не группы)? Какова точно группа владельца, если я (создатель файла и поэтому владелец) нахожусь в нескольких группах?
Скажите, что я - член группы A, группы B и группы C.
Теперь я создаю файл где-нибудь.
Начиная с выражения owner_group является исключительным и не множественным, к который get's группы owner_group примененные полномочия?
B XOR XOR C, или все они или ни один из них?
Если к этому относятся только один (поскольку исключительное подразумевает), как определяется, которые группируются, права присвоены?
У меня есть отличное чувство, что я действительно не понимаю что-то здесь, или что я неправильно понимаю значение слова "группа владельца".
foo
владеет файлом, и одна из групп пользователя foo
), затем соответствующие полномочия группы относятся к тому пользователю (если не переопределено полномочиями владельца).Группа владельца является частью владения файла. Рассмотрите:
$ 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: -
Это указывает, что владение файла с пользователем root
и группа crontab
.
Скажите, что я - член группы A, группы B и группы C. Теперь я создаю файл где-нибудь.... [К] которому get's группы owner_group примененные полномочия?
Это зависит от того, что - Ваша основная группа в то время, когда Вы создали тот файл. Основная группа является первой, перечисленной, когда Вы работаете groups
команда. Обычно, это определяется Вашим GID. Однако можно временно установить одну из других групп как основное использование newgrp
команда. Например:
$ 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
У меня есть отличное чувство, что я действительно не понимаю что-то здесь, или что я неправильно понимаю значение слова "группа владельца".
То, что группа владельца является атрибутом файла, не пользователем.
Я понимаю, что строка (после первого символа) делится в группы 3 (rwx) для
owner owner_group all/world/anyone
Немного прочь: третье поле является другими, не всеми. Другие покрывают всех кроме владельца файла и членов группы владельца файла. Различие играет роль при использовании символьных режимов с chmod
:
chmod a-x
устраняет общий выполнять полномочияchmod o-x
устраняет всех, кого else's выполняет разрешение, в то время как отъезд группы владельца и владельца выполняет нетронутое разрешение.Наконец, примечание по пользователю частные группы. UPGs довольно распространены в настольных системах, но не считают их само собой разумеющимся в другом месте. Если UPGs включены, вероятно, что у основной группы пользователя и имени пользователя есть тот же числовой идентификатор и имя, и существует уникальная группа для каждого пользователя. Это - все.