Я хочу сделать файл заблокированным от удаления, но все же быть доступным для записи. Как мне это сделать?
Данный файл представляет собой том Truecrypt в виде файла на сетевом ресурсе NAS SMB, поэтому я не хочу случайно его удалять.
Я хочу сделать файл заблокированным от удаления, но все же быть доступным для записи. Как мне это сделать?
Данный файл представляет собой том Truecrypt в виде файла на сетевом ресурсе NAS SMB, поэтому я не хочу случайно его удалять.
Для Windows:
Для Unix (включая OS X):
Обратите внимание, что это только предотвратит удаление (удаление) файла, но ничего не сделает против случайного усечения или перезаписи с мусором. Если файл доступен для записи, вы можете написать в него что угодно, точка.
Кроме того, права доступа к файлам практически невозможно преобразовать между операционными системами. Если NAS работает под управлением Linux, и вы пытаетесь установить разрешения изнутри Windows, конечный результат может отличаться от ожидаемого.
В Linux вы можете создать жесткую ссылку на него. Затем вы можете написать и "удалить" его, но вы будете только удалять ссылку в вашем каталоге. Другая жесткая ссылка будет по-прежнему указывать на содержимое файла, поэтому он все равно не будет удален.
В мире Unix вы не "удаляете" файлы. Вы просто уменьшаете количество жестких ссылок на него. Когда ничто иное не указывает на это, пространство считается свободным и может использоваться ...
Резервные копии. Вы не можете реально защитить записываемый файл от повреждения, даже если вы можете от удаления. Поддерживайте это ежедневно.
В коровьей файловой системе, такой как btrfs, вы можете добиться этого с помощью subvolumes + snapshots или cp с параметром --reflink = всегда, что приведет к тому, что вы получите столько файлов, сколько захотите, и которые будут занимать столько же места, сколько один + некоторые накладные расходы (но без безумного количества копий или снимков, особенно в сочетании с крошечными размерами файлов, это не должно быть заметно), пока они не будут изменены, и в этом случае только измененные части сохраняются отдельно, а остальная часть остается общей. Затем установите разрешения для каждого отдельно (для достижения того, что вы хотите, просто регулярно делайте снимок или копию с разрешениями только для чтения) (и при желании монтируйте его как ro или не все, если это снимок и если это файл, используйте chattr + i (пользователи могут не пишите и не изменяйте файл, даже если у вас есть права на запись) на одну копию, если вы параноик).
В дополнение к предыдущим ответам я хотел бы взглянуть на selinux. Там вы можете определить довольно детальные ограничения.