Як створити файл, навіть користувач root не може його видалити?
Як створити файл, навіть користувач root не може його видалити?
Відповіді:
Проста відповідь: Ви не можете, root може все.
Ви можете встановити атрибут "i" за допомогою chattr (принаймні, якщо у вас є ext {2,3,4}), що робить файл незмінним, але root може просто скасувати атрибут та видалити файл у будь-якому випадку.
Більш складний (і некрасивий хакітський спосіб вирішення): Покладіть каталог, який ви хочете незмінити для root, на віддалений сервер і змонтуйте його через NFS або SMB. Якщо сервер не пропонує дозволу на запис, що блокує локальний кореневий рахунок. Звичайно, локальний кореневий обліковий запис може просто скопіювати файли локально, відключити віддалений матеріал, поставити копію на місце та змінити це.
Ви не можете заблокувати корінь від видалення файлів. Якщо ви не можете довіряти вашому root, щоб зберегти файли недоторканими, у вас виникає соціальна проблема, а не технічна.
mv?" (який жартівливий жарт на основі християнської теософії та страшний жарт, якщо ви не знайомі з полем)
Покладіть його на компакт-диск! ;)
(це має бути коментар, але я не можу робити коментарі ...)
Давно я написав патч ядра (до 2.2.ancient), де спроба видалити файл під назвою SELFDESTRUCT вбила процес виклику. Це захищало від випадкового "rm -rf *".
Ви можете використовувати chattr +iфайл, щоб зробити непорушним файл.
Звичайно, кмітливий користувач із кореневим доступом все-таки може використати chattr -iдля видалення незмінного атрибута, а потім видалити файл, але вони також можуть скасувати будь-яку іншу спробу блокувати доступ, вказаний тут.
Я б стверджував, що chattr - це правильний спосіб Unix зробити це.