Пароль, защищающий системный файл? (например, /etc/resolv.conf)

Я пытаюсь самостоятельно контролировать себя, ограничивая доступ к сети через OpenDNS. Пароль учетной записи OpenDNS будет вручен кому-то заслуживающему доверия. Теперь я хочу установить некоторые ограничения на /etc/resolv.conf, возможно, используя ключ или пароль, но не пароль root. Также я не хочу компрометировать доступность ядра. Это возможно?

Нет, не так, как вы пытаетесь это сделать. Root имеет доступ к каждому файлу в системе. Вы можете сделать это сложнее, чтобы изменить файл (обратите внимание: он должен быть общедоступным), но если у вас есть root-доступ, вы не можете запретить его изменять.

Нет защиты паролем для файлов. Даже если бы был один, будучи root, вы могли бы удалить его. (Вы можете зашифровать файл, но это делает его нечитаемым.)

Один из способов затруднить изменение файла – установить неизменяемый атрибут : chattr +i /etc/resolv.conf . Тогда единственный способ изменить его – запуск chattr -i /etc/resolv.conf . (Или перейдите на более низкий уровень и измените содержимое диска – с очень высоким риском стирания ваших данных, если вы сделаете это неправильно).

Если вы хотите поместить фильтр с непродолжительным байпасом в свой веб-браузер, сделайте это в отдельном окне маршрутизатора. Пусть кто-то другой настроит его и не позволит им предоставить вам пароль администратора.

Пароль учетной записи OpenDNS будет вручен кому-то заслуживающему доверия.

ОК. Вы хотите, чтобы пользователь без полномочий root мог вносить ограниченные изменения.

Вы можете сделать это:

  1. Создайте новую группу, например «OpenDNS».
  2. chgrp OpenDNS /etc/resolv.conf
  3. chmod g + rw /etc/resolv.conf
  4. Добавьте доверенного пользователя в группу «OpenDNS».

Это предполагает, что разрешения на /etc/resolv.conf не контролируются какой-либо другой частью вашей системы.