Запретить удаление папки, но разрешить доступ ко всему внутри нее
Я знаю, что есть + 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
, но не разрешено его удалять.