Назад | Перейти на главную страницу

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

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

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

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

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

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

Это в основном то, для чего предназначена папка / 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, но не может его удалить.