2

У меня есть этот каталог /srv , для которого я хотел бы, чтобы члены группы wheel имели доступ к записи, а также любые файлы и каталоги, созданные для транзитивного наследования разрешений.

Однако после sudo chgrp wheel /srv && sudo chmod g+ws /srv я все еще не могу создать каталоги и файлы в /srv:

$ mkdir /srv/mantis
mkdir: cannot create directory `/srv/mantis': Permission denied

Изучение ACL в /srv показывает, что эффективное разрешение группы по какой-то причине только r-x :

$ getfacl /srv
getfacl: Removing leading '/' from absolute path names
# file: srv
# owner: root
# group: wheel
# flags: -s-
user::rwx
user:webmaster:rwx
group::r-x
mask::rwx
other::r-x

Есть причина, почему это происходит? Может ли быть так, что когда я добавил дополнительный доступ для пользователя webmaster (задолго до попытки setgid ), я случайно вмешался в групповой ACL?

1 ответ1

1

Установка маски с помощью setfacl chgrp не отражает изменения. Вы можете запустить setfacl -m g::rwx /srv чтобы установить разрешение группы.

В противном случае, если вам вообще не нужен расширенный ACL, вы можете удалить все правила с помощью setfacl -b /srvand затем повторно запустить sudo chmod g+ws /srv .

Перед редактированием

Из результатов getfacl кажется, что команда sudo chmod g+ws /srv не работала. По-видимому, вы запускаете sudo chgrp wheel /srv && sudo chmod g+ws /srv в виде одной команды. Если sudo chgrp wheel /srv не удалось (с ненулевым кодом выхода по какой-либо причине), соединитель && впоследствии просто ничего не будет игнорировать, поэтому sudo chmod g+ws /srv не будет выполняться.

Чтобы проиллюстрировать это, вы можете запустить cat NoSuchFile && echo "This message will be printed" . В этом примере команда echo игнорируется.

Вы можете попробовать запустить sudo chgrp wheel /srv и sudo chmod g+ws /srv отдельно и записать любые сообщения. В качестве альтернативы вы можете попробовать sudo chmod 2775 /srv который должен правильно установить разрешение.

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