Подтвердить что ты не робот

Разрешения каталога Linux читать, но не удалять

Возможно ли установить права доступа к каталогам, чтобы группа могла читать и записывать файлы и подкаталоги, но ничего не удалять?

4b9b3361

Ответ 1

Возможно, достаточно установить липкий бит в каталогах. Пользователи смогут удалять любые файлы, которыми они владеют, но не те, что принадлежат другим пользователям. Этого может быть достаточно для вашего случая использования. В большинстве систем /tmp устанавливается таким образом (/tmp устанавливается 1777)

chmod 1775/контролируемый

Однако, если вы хотите большего контроля, вам нужно включить ACL в рассматриваемой файловой системе.

В/etc/fstab добавьте acl к флагам:

/dev/root        /                       ext3    defaults,acl       1 1

Затем вы можете использовать setfacl/getfacl для управления и просмотра разрешений уровня acl.

Пример: (Создайте файлы, после их написания, они только для чтения, но могут быть удалены владельцем, но не другими). ​​

setfacl --set u::rwxs,g::rwx /controlled
setfacl -d --set u::r-x,g::r-x,o::- /controlled

Вы можете установить список acl по умолчанию в каталоге, который будет использоваться всеми созданными там файлами.

Как отмечали другие, будьте осторожны, чтобы точно указать, что вы хотите. Вы говорите "пишите" - но могут ли пользователи перезаписывать свои собственные файлы? Могут ли они изменить существующий контент или просто добавить? После написания, это только чтение? Возможно, вы можете указать более подробную информацию в комментариях.

Наконец, selinux и grsecurity обеспечивают еще больший контроль, но это целая другая червь из червей. Это может быть довольно сложно настроить.

Ответ 2

Ну, это будет r-x для этого каталога.

И файлы в нем будут иметь rw -.

Это связано с тем, что файл может быть записан, если его разрешения позволяют Write, но его можно удалить только в том случае, если его разрешения для каталога позволяют Write.

Ответ 3

Возможно или нет, убедитесь, что перезапись с 0-байтовым файлом не эквивалентна удалению файла в вашем конкретном контексте.