Права доступа Unix - что именно такое "группа владельцев" (примечание: единственное число)?

Я программирую файловую систему Fuse.
Пока все нормально, не возникало неразрешимых проблем (кроме производительности).

Тем не менее, я прочитал следующие статьи:
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 является единственным, а не множественным числом, к какой группе применяются разрешения owner_group?
A XOR B XOR C, или все они, или ни один из них?
Если он применяется только к одному (как следует из единственного числа), как определяется, какой группе назначены права?

У меня есть отчетливое чувство, что я чего-то не понимаю или что я неправильно понимаю значение термина "группа владельцев".

1 ответ

Решение
  • Пользователь может быть членом нескольких групп.
  • Файл принадлежит только одной группе и одному пользователю.
  • Если пользователь является членом группы владельцев файла (т. Е. Группы 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. Теперь я создаю файл где-нибудь. ... [Для] к какой группе применяются разрешения 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 забирает разрешение на выполнение всех остальных, оставляя нетронутым разрешение на выполнение для владельца и группы владельцев.

Наконец, заметка о частных группах пользователей. UPG довольно распространены в настольных системах, но не принимают их как должное в других местах. Если активны UPG, вероятно, что основная группа и имя пользователя имеют одинаковые числовые идентификатор и имя, и для каждого пользователя существует уникальная группа. Это все.

Другие вопросы по тегам