С какими ошибками столкнулся устанавливая
samba4 на Ubuntu 12.04 из репозитария и как их
обходил:
В итоге основной сценарий
был позаимствован из статьи
на сервере справки Ubuntu.
Из того, что
мне не понравилось:
1. Вводить в командной
строке пароль администратора домена -
как-то несекьюрно, ибо bash хранит все
введённые команды в обычном текстовом
файлике, так что вместо монструозной
конструкции типа sudo
/usr/share/samba/setup/provision --realm=...
рекомендую
обойтись интерактивным режимом работы
этого скрипта, выполнив просто sudo
/usr/share/samba/setup/provision
2. Рекомендованные
там разрешения apparmor мне показались
излишне обширными; опытно-теоретическим
путём я их сократил до более строгих
(странно, но на
сайте документации Ubuntu "блокировка"
обозначается ключём "k", а я по
аналогии с руганью в логах, использовал
"недокументированный" ключ "c"
и всё работает! - на всякий случай:
документация вместо rwc рекомендует
указывать rwk):
/var/lib/samba/private/*
r,
/var/lib/samba/private/dns/** rwc,
/usr/lib/x86_64-linux-gnu/**
mr,
Без этих строк
возникают ошибки, вызванные
apparmor:
/var/log/syslog:
2000 Jul 23
13:21:20 ubuntu-server named[5618]: dlz_dlopen failed to open library
'/usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so' -
/usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so: failed to map
segment from shared object: Permission denied
...
2000 Jul 23
13:21:20 ubuntu-server kernel: [ 5512.005356] type=1400
audit(1374571280.093:15): apparmor="DENIED"
operation="file_mmap" parent=5617 profile="/usr/sbin/named"
name="/usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so"
pid=5619 comm="named" requested_mask="m"
denied_mask="m" fsuid=107 ouid=0
Лечится добавлением
фрагмента в файл
/etc/apparmor.d/usr.sbin.named:
/usr/lib/x86_64-linux-gnu/**
mr,
Аналогично:
2000 Jul 23
14:03:03 ubuntu-server named[6097]: samba_dlz: Failed to connect to
/var/lib/samba/private/dns/sam.ldb
2000 Jul 23 14:03:03
ubuntu-server named[6097]: dlz_dlopen of 'AD DNS Zone' failed
2000
Jul 23 14:03:03 ubuntu-server named[6097]: SDLZ driver failed to
load.
2000 Jul 23 14:03:03 ubuntu-server named[6097]: DLZ driver
failed to load.
2000 Jul 23 14:03:03 ubuntu-server named[6097]:
loading configuration: failure
2000 Jul 23 14:03:03 ubuntu-server
named[6097]: exiting (due to fatal error)
2000 Jul 23 14:03:03
ubuntu-server kernel: [ 8015.196396] type=1400
audit(1374573783.285:81): apparmor="DENIED"
operation="file_lock" parent=6096 profile="/usr/sbin/named"
name="/var/lib/samba/private/dns/sam.ldb" pid=6098
comm="named" requested_mask="k" denied_mask="k"
fsuid=107 ouid=0
или
2000
Jul 23 14:16:06 ubuntu-server kernel: [ 8798.698927] type=1400
audit(1374574566.785:88): apparmor="DENIED"
operation="open" parent=6424 profile="/usr/sbin/named"
name="/var/lib/samba/private/dns/sam.ldb.d/DC=UBISERV,DC=TEST,DC=LAN.ldb"
pid=6426 comm="named" requested_mask="rwc"
denied_mask="rwc" fsuid=107 ouid=0
Исправляется
добавлением в /etc/apparmor.d/usr.sbin.named разрешения
читать настройки samba и писать в базу DNS
с блокировкой:
/var/lib/samba/private/*
r,
/var/lib/samba/private/dns/** rwc,