Статьи‎ > ‎

Ошибки apparmor при установке samba4

С какими ошибками столкнулся устанавливая 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,

Comments