Как создать файл, даже пользователь root не может его удалить

Как создать файл, даже пользователь root не сможет его удалить?

12 голосов | спросил Kumar 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 27 Sep 2010 16:29:15 +0400 2010, 16:29:15

5 ответов


33

Простой ответ: вы не можете, root может сделать все.

Вы можете установить атрибут «i» с помощью chattr (по крайней мере, если вы используете ext {2,3,4}), что делает файл неизменным, но root может просто отключить атрибут и удалить файл в любом случае.

Более сложный (и уродливый хакерский обходной путь): Поместите каталог, который вы хотите изменить для root на удаленном сервере, и установите его через NFS или SMB. Если сервер не предоставляет права на запись, которые блокируют локальную учетную запись root. Конечно, локальная учетная запись root могла просто скопировать файлы по локальной сети, размонтировать удаленный файл, поместить копию на место и изменить ее.

Вы не можете заблокировать root от удаления ваших файлов. Если вы не можете доверять своему корню, чтобы сохранить файлы в целости, у вас есть социальная проблема, а не техническая.

ответил tante 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 27 Sep 2010 16:40:59 +0400 2010, 16:40:59
33

Поместите это на CD-ROM! ;)

(это должен быть комментарий, но я не могу делать комментарии ...)

ответил laurent 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 27 Sep 2010 20:32:34 +0400 2010, 20:32:34
15

Поместите свой файл в файловую систему readonly. Это может быть удаленная FS, где root больше не является root, компакт-диском или съемным устройством, которое может быть защищено от записи, например SD-картой.

ответил mouviciel 27 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 27 Sep 2010 23:08:22 +0400 2010, 23:08:22
2

Давным-давно я написал патч ядра (до 2.2.ancient), где попытка удалить файл SELFDESTRUCT убила вызывающий процесс. Это защищено от случайного «rm -rf *».

ответил pjc50 15 FebruaryEurope/MoscowbTue, 15 Feb 2011 19:13:36 +0300000000pmTue, 15 Feb 2011 19:13:36 +030011 2011, 19:13:36
1

Вы можете использовать chattr +i, чтобы сделать файл неизменным.

Конечно, опытный пользователь с корневым доступом все равно может использовать chattr -i, чтобы удалить неизменяемый атрибут, а затем удалить файл, но они могут отменить любую из других попыток заблокировать доступ, указанный здесь.

Я бы сказал, что chattr является правильным способом Unix для этого.

ответил jeremyjjbrown 21 Mayam14 2014, 05:21:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132