Как указать группу с помощью chmod?


30

Меня попросили добавить разрешения group-wrx в каталог в домашней папке другого пользователя.

Я верю, что я должен сделать, это бежать chmod 771 -R directoryname в родительском каталоге. То, что я не могу найти нигде на трубах, как указать который группа, я хочу дать эти разрешения. Я лично в нескольких группах, и в группе я не знаю, как root.

В случае, если это важно, система работает Redhat 5.4.

Ответы:


32

chmod() системный вызов и, соответственно, chmod программа, не влияет на группу файлов или каталогов (или другой тип файла: специальный блок, специальный символ, сокет, ... символическая ссылка является чем-то особенным). Таким образом, группа, которой предоставлено разрешение, будет группой, к которой принадлежит файл или каталог.

Добавить группу rwx разрешения, вы должны использовать:

chmod -R g+rwx DirectoryName

Однако это добавляет разрешения для каждого файла, а также для каждого каталога, и не все файлы должны быть исполняемыми. Лично я был бы очень недоволен, если бы кто-то предоставил разрешение на групповую запись для всех (или любых) моих каталогов, но это уже другая история.

Чтобы влиять только на каталоги, используйте find вместо:

find DirectoryName -type d -exec chmod g+rwx {} +

(The + обозначение POSIX 2008; не все системы Unix поддерживают это, хотя Linux поддерживает.)


1
Если вы используете + X (заглавная X), вы добавите разрешение на выполнение (или «поиск»), только если файл является каталогом или уже имеет разрешение на выполнение для какого-либо пользователя. linux.die.net/man/1/chmod
Dave

@ Dave: chmod +X кажется, поддерживается и на BSD (Mac OS X). Тщательное изучение POSIX chmod указывает на то, что +X это особенность POSIX: Символ перманента X должен представлять часть выполнения / поиска битов режима файла, если файл является каталогом или если текущие (немодифицированные) биты режима файла имеют по меньшей мере один из установленных битов выполнения (S_IXUSR, S_IXGRP или S_IXOTH). Он должен игнорироваться, если файл не является каталогом, и ни один из битов выполнения не установлен в текущих битах режима файла. Обратите внимание на обоснование ниже.
Jonathan Leffler

9

Каждый файл на вн Файловая система имеет:

  1. Владелец пользователя
  2. Группа владельцев
  3. Разрешения для этого пользователя, этой группы и всех остальных.

Если вы устанавливаете права доступа группы rwx для файла, только группа владельцев этого файла может читать / записывать / выполнять ее. Однако вы можете изменить пользователя и владельца с помощью:

chown username file1 file2 ...
chown -R username somedir
chgrp groupname file1 file2 ....
chgrp -R groupname somedir
chown username:groupname file1 file2 ...

Существуют различные реализации расширенных привилегий файловой системы, то есть ACL (списки контроля доступа) в Mac OS X, но, поскольку я не являюсь экспертом по Linux, вам, вероятно, следует спросить Ошибка сервера для этого.


«поэтому, если вы устанавливаете права доступа для группы rwx для файла, только группа владельцев этого файла может читать / записывать / выполнять ее», я понимаю, что это может вводить в заблуждение, прежде всего, если вы являетесь владельцем пользователя, конечно, Правила пользователя владельца имеют приоритет, если вы не являетесь ни владельцем пользователя, ни в группе владельцев, применяются правила для других.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.