Назад | Перейти на главную страницу

Как пользователь root может создать для себя файл / каталог, в который нельзя писать?

Обычные пользователи могут chmod файлы, чтобы сделать их недоступными, например

evgeniy@ubuntu:~$ touch test
evgeniy@ubuntu:~$ chmod 444 test
evgeniy@ubuntu:~$ echo 'test' > test
bash: test: Permission denied

Можно ли смоделировать что-то подобное для пользователя root?

chattr +i * не позволит даже учетной записи root вносить изменения в файлы в каталоге (до тех пор, пока chattr -i * запущен).

Комментарий Пера Слартибартфаста, несколько вещей, о которых вам следует знать болтать и неизменяемый атрибут:

  1. В неизменный bit предотвратит удаление, переименование, связывание или запись файла; использовать lsattr отображать атрибуты таким же образом ls отображает права собственности и разрешения
  2. Вы можете предотвратить сброс неизменяемого бита (даже root), изменив CAP_LINUX_IMMUTABLE flag - для этого вы захотите установить libcap, но это справедливое предупреждение о том, что возможности плохо документированы (в лучшем случае)

SELinux можно использовать, чтобы пометить файл как незаписываемый пользователем root в текущем домене и роли пользователя.