Преамбула: холивара «Apparmor vs Selinux» не будет. Ибо равноэскобарно для меня.

Фабула: Решил починить неработающую синхронизацию времени в домашнем домене (да, у меня дома домен). Выяснилось, что apparmor не даёт взаимодействовать ntp-серверу с samba-сервером. Быстрое раскуривание логов и гугление показало, как надо объяснить apparmor’у его неправоту — вставляем в /etc/apparmor.d/local/usr.sbin.ntpd следующие строки:

#include <abstractions/dbus-strict>

# samba4 ntp signing socket
/var/lib/samba/ntp_signd/socket rw,

# samba4 winbindd pipe
/run/samba/winbindd/pipe rw,

Перезапускаем сервис apparmor: service apparmor restart. Если ругнулось на синтаксис и упало — значит, где-то закрались лишние пробелы или строки, убираем их. Да, между значком «#» и словом «include» пробела НЕТ, а до этой строки не должно быть пустых строк, разве что с комментариями.

Почему это нельзя запихать в пакеты — наверное, потому что домен на самбе можно приготовить несколькими разными способами…


Вишенка на торте: если использовать встроенный в Samba DNS-сервер, то нужно откуда-то узнать, что в Ubuntu без установленного пакета dnsutils не будет работать динамическое обновление адресов…