Нет, это невозможно. Невозможно для обычных пользователей удалить файл: обязательно.
Вам понадобится sudo, чтобы пользователи не могли удалять файлы. Ваш администратор всегда сможет удалить файл. sudo chattr +i test может предотвратить удаление, но требует sudo. Простой sudo chattr -i test позволяет удалить файл. Ни один другой пользователь, кроме администратора, не может использовать chattr.И ... просто перезагрузка и переход в режим спасения позволят этому человеку удалять этот файл. Это был бы риск для безопасности, если бы был способ никогда не удалять файл.
Немного грубо, но это близко - если вы удаляете доступ на запись в каталоге, файлы внутри него не могут быть удалены. И это не требует sudo, если вы владеете им:
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
Таким образом, вы можете установить разрешения для самого файла, как вы хотите.
Кроме того, как указано в @ Rinzwind, там, конечно, много способов.
Чтобы удалить файл, вам необходимо получить разрешение на запись во все каталоги, к которым привязан файл. Чтобы отключить его от одного каталога, вам необходимо написать разрешение на этот каталог.
До тех пор, пока вы даете разрешение на запись (или даже право собственности) на файл, но не на каталог или каталоги, к которому этот файл связан , этот файл не может быть удален.
Лучший способ добиться этого - связать этот файл с каталогом, принадлежащим root, и который не может быть написан кем-либо. Вы могли бы сделать это принадлежащим вам, а это означало бы, что и вы, и корень могли бы его удалить.
Это все равно позволит другим пользователям связать этот файл с другими каталогами и отменить его оттуда после этого, но они все равно будут
Обратите внимание, что для того, чтобы полностью работать, разрешение на запись каждого компонента пути к файлу должно было бы быть удалено из вашего собственного каталога.
контролируется. Потому что, например, если файл /a/b/the-file, и вы /a/b недоступны для записи кем угодно, но у всех есть доступ на запись к /a, тогда они могут переименовать /a/b в нечто другое и воссоздать свои собственные /a/b и создать их собственный /a/b/the-file там.