Эффективное групповое разрешение каталога - setgid неэффективно
У меня есть это /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 ответ
Имея маску, установленную 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
который должен правильно установить разрешение.