Конечно, это будет сбои, так как Вы запретили полномочия чтения/записи/выполнения на /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
Это покажет все файлы перекличек, которые назвали/связали, делает. Теперь обработка:
grep conf named read(5, "#\n# OpenSSL example configuratio"..., 4096) = 4096 write(2, "08-Feb-2014 14:01:42.372 built w"..., 39108-Feb-2014 14:01:42.372 built with '--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 loading configuration from '/etc/bind/named.conf' [pid 25348] open("/etc/bind/named.conf", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied) [pid 25348] write(2, "08-Feb-2014 14:01:42.396 open: /"..., 7108-Feb-2014 14:01:42.396 open: /etc/bind/named.conf: permission denied [pid 25348] write(2, "08-Feb-2014 14:01:42.399 load_co"..., 6308-Feb-2014 14:01:42.399 load_configuration: permission denied [pid 25348] write(2, "08-Feb-2014 14:01:42.400 loading"..., 6608-Feb-2014 14:01:42.400 loading configuration: permission denied
Названные попытки сделать прослушивание как только для чтения и сбои с -1 EACCES
так как файл не имеет полномочий чтения. Это документируется в открытую () страницы руководства:
EACCES
Поисковое разрешение отклонено на компоненте префикса пути, или файл существует, и полномочия, указанные oflag, отклонены, или файл не существует и пишет, что разрешение отклонено для родительского каталога файла, который будет создан, или O_TRUNC указан, и разрешение записи отклонено.
Сводка: тот апач или любые другие работы процесса не подразумевают, что связывают/называют, будет.
BTW, выполнение связывает, поскольку корень является излишеством и не необходим.
Запуск sudo chown -R pi: pi /
в основном нарушает права собственности на каждый файл в вашей системе.
К сожалению, переустановка - вероятно, самый простой вариант в вашем случае. Было бы очень утомительно и подвержено ошибкам пытаться восстановить надлежащие права собственности вручную (предположительно, с использованием другого компьютера). Я рекомендую создать образ хранилища Raspberry Pi перед переустановкой, чтобы после переустановки вы могли восстановить некоторые из внесенных вами изменений.
Самый простой способ - найти и сохранить все файлы, которые были изменены за «последние несколько недель», а затем переустановить и повторно применить изменения.
cd / mnt / root && tar czvf /mnt/usb/tarball.tgz --newer-mtime = '2015-10-01 00:00:00'.
Убедитесь, что / mnt / root
является корнем вашей системы Pi, а не корнем аварийного диска, и что / mnt / usb
находится в безопасном месте, например USB-накопитель cd / && tar xzvf /root/tarball.tgz
бит setuid
в исполняемом файле означает, что рассматриваемый файл может изменить свой эффективный UID на идентификатор пользователя-владельца вместо идентификатора вызывающего / исполняющего пользователя.
Запустив sudo chwon -R pi: pi /
, вы сделали sudo
принадлежащим пользователю pi
(ненулевой UID) и, следовательно, когда sudo
проверяет, может ли он изменить свой эффективный UID на 0 ( root
), он видит, что не может, потому что он больше не принадлежит root
.
Вы можете попытаться восстановить его, выполнив chown root: root
поверх sudo
, но он может сказать, что у вас недостаточно прав для этого, поэтому переустановка может быть есть только возможность.