В Debian 7, какой пользователь использует bind9 для запуска демона?

У меня есть Debian 7 и установка по умолчанию bind9, я вручную изменил разрешение /etc/bind/named.conf на 000 и удалил флаг -u bind из /etc/default/bind9 чтобы увидеть, что происходит.

Насколько я знаю: когда bind9 запускается как демон уровня 3, демон init вызывает скрипт daemon bind9 /etc/init.d/bind9 как root. Сценарий демона bind9 не переключает пользователя, не выполняет сама программа bind9, потому что флаг связи -u bind уже удален.

Но проблема в том, что bind9 не запускается и жалуется на «разрешение отказано» на /etc/bind/named.conf

Если скрипт bind9 запускался с помощью root, как может возникнуть проблема разрешения?

Для дальнейшего уточнения: нет призрака, selinux отключен. Остальная конфигурация bind9 остается по умолчанию.

  • AppArmor вызывает Firefox segfaults
  • Ubuntu: `debdelta-upgrade` только обновляет одну дельта за раз
  • Какая разница между ARM Debian для Raspberry PI и Ordinary debian x32 / X64 для рабочего стола?
  • Как удалить пакет, созданный из источника с тем же именем другого пакета?
  • Поддерживает ли Lenovo 3g модем с debian (сетевой менеджер)
  • есть ли разница между convert и convert-im6, и если да, то что?
  • Почему APT не может найти пакет?
  • apt-get обновление не работает
  • 2 Solutions collect form web for “В Debian 7, какой пользователь использует bind9 для запуска демона?”

    Перед тем, как именованный читает файл конфигурации, он оставляет все, кроме необходимых возможностей. Возможность, позволяющая root обойти все проверки прав доступа к файлам, – CAP_FOWNER – см. Возможности (7), если вам интересно. Если вы проверите исходный код связывания, в bin / named / unix / os.c вы найдете функции linux_initialprivs () linux_minprivs () и другие, ответственные за это поведение.

    Итак, да, ваше замешательство понятно. uid 0 обычно имеет CAP_FOWNER, и, таким образом, процесс, работающий как uid 0, сможет работать беспрепятственно большинством проверок доступа к файлам и разрешений. В этом случае привязка безвозвратно отменяет все привилегии, которые явно не нужны для работы. На мой взгляд, это очень разумное и разумное действие для демона.

    Чтобы избежать проблемы, рассмотрите возможность изменения разрешений для этого файла конфигурации на просто 0400, что позволяет uid = 0 читать файл, не полагаясь на CAP_FOWNER.

    Конечно, это не удастся, поскольку вы запретили разрешения на чтение / запись / выполнение на /etc/bind/named.conf . Попробуйте использовать chmod ugo+r /etc/bind/named.conf && chown root /etc/bind/named.conf и повторите попытку.

    Объясняя, почему

    Посмотрим, как именованный читает файл.

     sudo strace -f /usr/sbin/named -fg -d 10 2> named 

    Это покажет все вызовы над файлами с именем / bind. Теперь обработка:

      grep conf назван                                  
     read (5, "# \ n # OpenSSL example configuratio" ..., 4096) = 4096
     напишите (2, «08-Feb-2014 14: 01: 42.372 built w» ..., 39108-Feb-2014 14: 01: 42.372 построено с '--prefix = / usr' '--mandir = / usr / share / man '' --infodir = / usr / share / info '' --sysconfdir = / etc / bind '' --localstatedir = / var '' --enable-threads '' --enable-largefile '' - -with-libtool '' --enable-shared '' --enable-static '' --with-openssl = / usr '' --with-gssapi = / usr '' --with-gnu-ld '' - -with-geoip = / usr '' --enable-ipv6 '' CFLAGS = -fno-strict-aliasing -DDIG_SIGCHASE -O2 '
     [pid 25348] write (2, "08-Feb-2014 14: 01: 42.395 loading" ..., 7508-Feb-2014 14: 01: 42.395 загрузка конфигурации из '/etc/bind/named.conf'
     [pid 25348] open ("/ etc / bind / named.conf", O_RDONLY | O_LARGEFILE) = -1 EACCES (разрешено разрешение)
     [pid 25348] write (2, «08-Feb-2014 14: 01: 42.396 open: /« ..., 7108-Feb-2014 14: 01: 42.396 open: /etc/bind/named.conf: разрешено отклонение
     [pid 25348] write (2, «08-Feb-2014 14: 01: 42.399 load_co» ..., 6308-Feb-2014 14: 01: 42.399 load_configuration: запрещено разрешение
     [pid 25348] write (2, «08-Feb-2014 14: 01: 42.400 loading« ..., 6608-Feb-2014 14: 01: 42.400 загрузка конфигурации: разрешение отклонено 

    Именованный пытается сделать открытый вызов как readonly и терпит неудачу с -1 EACCES так как файл не имеет прав на чтение. Это описано в справочных страницах open () :

    EACCES

    Разрешение поиска отклоняется в компоненте префикса пути или файл существует, а разрешения, заданные с помощью параметра tolag, отклоняются или файл не существует, а разрешение на запись отклоняется для родительского каталога создаваемого файла или O_TRUNC – указано разрешение на запись и запись.

    Резюме: этот apache или любой другой процесс не означает, что bind / named будет.

    BTW, запуск bind как root – это излишний и не нужен.

    Interesting Posts

    При использовании createrepo я могу разместить rpms в нескольких каталогах?

    Как просмотреть предварительный просмотр макета клавиатуры в KDE4?

    Wi-Fi с аутентификацией WPA2-EAP MS-CHAPv2 (имя пользователя и пароль) во время установки Debian

    Обновлена ​​альтернатива Linux для эфирного вещания Stereo Mix?

    Задача Cron выполняется каждый час, а не каждые 3 часа

    Проблемы с OpenGL и Nvidia с Manjaro после настройки параметров настройки

    Легкая изолированная среда linux

    gnuplot – «подталкивать» отложенные точки от края диаграммы

    Как отключить энергосбережение на экране ноутбука при использовании Scientific Linux 6.3?

    Общие сведения о виртуальных коммутаторах в Linux

    команда bash / script для сброса маршрута по умолчанию

    Мониторинг трафика HTTPS с использованием tcpflow

    Datecalc эквивалент для Linux

    Чтение строки переменного размера и разбиение ее содержимого на отдельные строки с текстом

    Как узнать, какая программа может открыть данный файл?

    Linux и Unix - лучшая ОС в мире.