Replies (23)
-
@schors, Сделать её родителя RO
lynn@x220:/tmp/x$ ll
total 12
dr-xr-xr-x 3 lynn lynn 4096 Dec 18 19:06 ./
drwxrwxrwt 13 root root 4096 Dec 18 19:07 ../
drwxrwxr-x 2 lynn lynn 4096 Dec 18 19:07 y/
lynn@x220:/tmp/x$ rmdir y
rmdir: failed to remove ‘y’: Permission denied
lynn@x220:/tmp/x$ touch y/qweqwe
lynn@x220:/tmp/x$ ls y/
qweqwe sad
/1 · Reply -
@schors, 1. Можешь просто организовать структуру директорий так, чтобы права на удаление в пределах одной директории были униформны. Вставить лишний подкаталог несложно.
2. Можешь заморочиться с ACL
3. Если просто надо гарантировать что что-то не удалят, можно поставить флаг файловой системы immutable
chattr +i
Я так например борюсь с произволом cpanel/5 · Reply -
@schors, А если сделать такой финт ушами с mount --bind?
lynn@x220:~/tmp$ sudo mount --bind new new
lynn@x220:~/tmp$ rm -r new
rm: cannot remove ‘new’: Device or resource busy
lynn@x220:~/tmp$ touch new/2
lynn@x220:~/tmp$ ls new
2
lynn@x220:~/tmp$ sudo umount new
lynn@x220:~/tmp$ ls new
2
-
@schors, Первый вариант: не даешь пользователю писать в /home/user/, разрешаешь только в /home/user/www/, /home/user/tmp/, /home/user/trash/, но например /home/user/logs/ разрешаешь только смотреть. Классический тупой вариант.
Второй вариант для любителей выпендриваться: Запрещаем стирать tmp в каталоге принадлежащем юзерю либо при помощи ACL, либо chattr +i. В последнем случае создаем дополнительный подкаталог, да.