Во всех системах Unix, что я видел, что это совпадает с синглом /
, но стандарт Unix указывает это
Путь, который начинается с двух последовательных наклонных черт, может быть интерпретирован определенным реализацией способом, хотя больше чем две ведущих наклонных черты нужно рассматривать как единственную наклонную черту.
таким образом, это может быть обработано особенно, в зависимости от Вашей системы. (Некоторые более старые версии Unix использовали двойное продвижение /
для доступа удаленной файловой системы, и могут все еще быть некоторые, которые делают.)
(Мне не нравится внедрять дом пользователей, я думаю, что им нужно позволить сделать независимо от того, что они хотят сделать с, они размещают …, но так или иначе …),
Это должно работать над Linux (по крайней мере). Я принимаю user
уже член группы user
. Решение состоит в том, чтобы изменить владение Directory1
и набор липкий бит на каталоге:
chown root:user Directory1
chmod 1775 Directory1
Затем использование:
chown root Directory1/CantBeDeletedFile
Теперь, user
не сможет удалить этот файл из-за липкого бита ¹. user
все еще может добавить/удалить их собственные файлы в Directory1
. Но заметьте, что они не смогут удалить Directory1
потому что это никогда не будет освобождаться.
—
1. Когда липкий бит включен на каталоге, пользователи (кроме владельца) могут только удалить свои собственные файлы в каталоге. Это используется на каталогах как /tmp
чьи полномочия 1777
=rwxrwxrwt
.
Сделайте файл неизменным с i
атрибут.
chattr +i file.desktop
посмотрите man chattr
для получения дополнительной информации.
chattr
только работы над ext2/ext3/ext4 файловыми системами.
– manatwork
05.09.2011, 10:17
chattr -i file.desktop
– GreenRaccoon23
20.04.2017, 08:02
Я не думаю, что существует способ предотвратить удаление отдельного файла с полномочиями файла Unix, но я могу думать об обходном решении: запишите демону, который заменяет его, когда это удалено. inotify-tools
идеально подходит для этого вида вещи, если Вы находитесь на Linux.
Существует несколько способов, которыми можно заменить удаленный объект: скопируйте новый на месте, или сохраните реальный файл в безопасном месте и просто скопируйте ссылку в каталог пользователя. Для ссылки можно или использовать символьную ссылку или жесткую ссылку. Я запустил бы с символьной ссылки, но немного (очень немного) программы не обрабатывают символьные ссылки правильно. Если Вы находите, что пользователь встречается с программой как это, используйте жесткую ссылку вместо этого.
Простой
chmod -i filename
как бы «защитит» этот файл от удаления.
rm filename
rm: remove write-protected regular file 'filename'?
Вы все еще можете удалить его, но, по крайней мере, вы должны быть достаточно уверены в том, что делаете.
cp /here/is/the/master/ThisDesktopFile $HOME
. Подписанный: BOfH" – vonbrand 24.01.2013, 02:39