Я хочу зробити файл заблокованим проти видалення, але все-таки бути доступним для запису. Як це зробити?
Розглянутий файл є томом Truecrypt у вигляді файлу на спільній мережі NAS SMB, тому я не хочу його випадково видаляти.
Я хочу зробити файл заблокованим проти видалення, але все-таки бути доступним для запису. Як це зробити?
Розглянутий файл є томом Truecrypt у вигляді файлу на спільній мережі NAS SMB, тому я не хочу його випадково видаляти.
Відповіді:
Для Windows:
Для Unix (включаючи OS X):
Зауважте, що це лише запобіжить видаленню (видаленню) файлу, але не зробить нічого проти випадкового усічення або перезапису сміттям. Якщо файл можна записати, ви можете написати до нього що завгодно, періодично.
Крім того, права доступу до файлів поруч із неможливим перекладом між операційними системами. Якщо NAS працює з Linux, а ви намагаєтеся встановити дозволи в Windows, кінцевий результат може відрізнятися від очікуваного.
У Linux ви можете створити жорстке посилання на нього. Потім ви можете написати на нього та "видалити", але ви видалите лише посилання у своєму каталозі. Інше жорстке посилання все одно вказуватиме на вміст файлу, тому його все одно не буде видалено.
У світі Unix ви не "видаляєте" файли. Ви просто зменшите кількість жорстких посилань на нього. Коли нічого іншого не вказує на це, простір вважається вільним і його можна використовувати ...
Резервні копії. Ви дійсно не можете захистити файл, що записується, від пошкодження, навіть якщо ви можете його видалити. Створюйте резервні копії щодня.
На додаток до попередніх відповідей я б розглядав selinux. Там ви можете визначити досить детальні обмеження.
У файловій системі корів, наприклад, btrfs, ви можете досягти цього за допомогою підпунктів + знімків або cp з --reflink = завжди це ефективно призведе до того, скільки бажаєте файлів, які б зайняли стільки ж місця, як один + деякий накладні витрати (але без божевільної кількості копій або знімків, особливо в поєднанні з крихітними розмірами файлів, це не повинно бути помітним), поки вони не будуть змінені, і в цьому випадку окремі частини, що були змінені, зберігаються окремо, а решта все ще ділиться. Потім встановіть дозволи на кожен окремо (щоб досягти того, що ви хочете, просто регулярно робити знімок або копіювати з дозволами лише для читання (і, можливо, встановити його ro або not all, якщо це знімок, і якщо це файл, використовуйте chattr + i (користувачі можуть не пишіть і не змінюйте файл, навіть якщо у вас є дозволи на запис) на одній копії, якщо ви параноїк).
У "стандартному" UNIX, схоже, неможливо захистити один файл від видалення, якщо каталог записується. Інтуїтивно можна очікувати, що очищення захисту w від бітів режиму за допомогою "chmod" повинно захищати від видалення, але ЦЕ НЕ СЛУЧАЄ. Аналогічно, в AFS ви не можете захистити окремі файли від видалення, оскільки записи ACL (відсутні або забороняючи відповідну дозволу "d") стосуються лише каталогу в цілому.