2

Я хочу создать каталог, например:

/ Государственные / все

Но я хочу, чтобы, если вы создаете файл во всех файлах, владелец был root, но любой, у кого есть доступ к папке /public /all, может удалить / отредактировать / etc файл, но не может изменить разрешения. (Я буду использовать самостоятельно созданное приложение "setx", чтобы изменить значение выполнения при необходимости.)

Причина этого заключается в том, что я не хочу, чтобы вы могли запретить другим пользователям доступ на запись / чтение к файлам в / public / all. Я слышал, setuid для каталогов не работает для этого.

1 ответ1

6

Ты не сможешь это сделать; первоначальный владелец всегда является создателем объекта.

То, что вы можете сделать, это установить списки ACL по умолчанию для автоматического разрешения чтения / записи всем:

setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /public/all

Также возможно установить группу по умолчанию:

chown :nobody /public/all
chmod g+s /public/all

Однако ни один из них не помешает владельцу изменить разрешения позже.


Альтернативное решение - отслеживать каталог с помощью inotify (используя incron) и автоматически запускать chown при создании. Поместите это в incrontab:

/public/all IN_CREATE chown nobody:nobody $@/$#; chmod 0666 $@/$#

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