30

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

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

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

2 ответа2

32

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

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

chmod -R g+rwx DirectoryName

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

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

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

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

9

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

  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, вам, вероятно, следует спросить об этом в Server Fault .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .