Запретить удаление папки, но разрешить доступ ко всему внутри нее

Я знаю, что есть + i флаг для файлов и каталогов, но у меня есть более глубокая проблема.

Есть ли способ предотвратить удаление папки пользователем, который должен иметь возможность создавать / получать доступ / удалять файлы и папки ВНУТРИ защищенной от удаления папки?

sudo chattr +i testfolder Флаг не поможет, потому что тогда пользователь может только читать файлы, но не создавать или удалять их.

sudo chattr +a testfolder flag Wonth либо справка, потому что тогда пользователь может писать и читать файлы, но только добавлять файлы редактирования и не удалять их.

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

1 ответ

Это в основном то, для чего предназначена папка / tmp. Так что просто установите права доступа так же, как / tmp:

chmod --reference=/tmp testfolder

testfolder должен принадлежать другому пользователю (например, root). Пользователь сможет wrx файлы и папки в тестовой папке, но не смогут удалить или изменить тестовую папку.

Например:

[root@host ~]# mkdir /test
[root@host ~]# chmod --reference=/tmp /test
[root@host ~]# ls -ld /test
drwxrwxrwt 2 root root 4096 Feb 15 09:33 /test/
[root@host ~]# su - user
[user@host ~]$ mkdir /test/foo
[user@host ~]$ rm -fr /test
rm: cannot remove `/test': Permission denied

Как вы видете, user можно создавать файлы и директории под /test, но не разрешено его удалять.

Другие вопросы по тегам