вторник, 6 ноября 2018 г.

При старте Bind в логах ошибка "couldn't mkdir '//run': Permission denied"

  Только что написал статью о том как ограничить DNS-сервер Bind и поставить его в chroot окружение. Напоминаю, что поставил я его в /var/bind.
  И теперь могу признаться, что при ее написании столкнулся с проблемой. Сам Bind стартовал, команда dig показывала, что имена он решает. но в логах висела ошибка
Nov  2 11:06:07 test-debian named[5080]: couldn't mkdir '//run': Permission denied
Nov  2 11:06:07 test-debian named[5080]: generating session key for dynamic DNS
Nov  2 11:06:07 test-debian named[5080]: couldn't mkdir '//run': Permission denied
Nov  2 11:06:07 test-debian named[5080]: could not create //run/named/session.key
Nov  2 11:06:07 test-debian named[5080]: failed to generate session key for dynamic DNS: permission denied

  Также в папке /var/bind/var/run/* отсутствовал pid-файл. Была уверенность, что проблема в доступе к папке var/run, но ухищрения, в том числе и полные права на эту папку не давали результата.
  Процесс решения проблемы занял три дня, пока меня не осенило. Я привык думать, что стандартная папка для pid-файлов и прочего подобного это /var/run. Но когда я присмотрелся к основной системе, увидел, что /var/run это просто ссылка на /run. Для решения проблемы сделал ссылку на новое место:
ln -s /var/bind/var/run /var/bind/run
Ошибка в логах исчезла