我有三台 Ubuntu 服务器,其中一台可以将其日志保存在文件中/var/log/ntp.log
,另外两台则不能。
所有配置均如下所示(显然未注释):
logfile /var/log/ntp.log
文件的样子如下:
$ ls -l /var/log/ntp.log
-rw-r--r-- 1 ntp ntp 0 Jul 21 13:13 /var/log/ntp.log
然而,我在两台机器上都出现了这个错误:
Jul 21 13:19:01 ubuntu ntpd[18128]: Cannot open logfile /var/log/ntp.log: Permission denied
除了创建文件并确保它归 ntp 所有之外,我还能做什么权限?
touch /var/log/ntp.log
chown ntp:ntp /var/log/ntp.log
我怀疑它与 apparmor 有关(即,没有 apparmor 的计算机可以按预期工作),但我看不出它会失败的任何原因。
该/etc/apparmor.d/usr.sbin.ntpd
文件称:
[...剪辑...] /var/log/ntp w,/var/log/ntp.log w,/var/log/ntpd w,[...剪辑...]
我可以看到DENIED
来自 apparmor 的错误,但它似乎没有关联:
7 月 21 日 13:33:50 ubuntu 内核:[369654.558541] 审核:类型 = 1400 审核(1626899630.124:990):apparmor =“DENIED”操作 =“ope n”配置文件 =“/usr/sbin/ntpd”名称 =“/snap/bin/”pid = 19628 comm =“ntpd”requested_mask =“r”denied_mask =“r”fsuid = 0 ouid = 0
我们可以看到,它尝试打开/snap/bin
,而不是/var/log/ntp.log
。为了以防万一,我尝试将ntp.log
权限更改为rw
而不是w
,但没有任何区别。
另外我想明确声明一下,我没有使用 snap 包:
$ dpkg -l ntp
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===============================-====================-====================-===================================================================
ii ntp 1:4.2.8p10+dfsg-5ubu amd64 Network Time Protocol daemon and utility programs
我发现各种帖子到目前为止都没有帮助:
https://serverfault.com/questions/1055736/ntpd-permission-denied-writing-to-var-log-ntpstats-statsdir-directory
https://unix.stackexchange.com/questions/116591/why-am-i-getting-apparmor-error-messages-in-the-syslog-about-ntp-and-ldap
https://help.ubuntu.com/community/AppArmor
$ bash pathlld /var/log/ntp.log
drwxr-xr-x 25 root root 4096 Jun 24 06:42 /
/dev/sdb3 on / type ext4 (rw,relatime,data=ordered)
drwxr-xr-x 21 root root 4096 May 12 2020 /var
/dev/mapper/users-var on /var type ext4 (rw,relatime,data=ordered)
drwxrwxr-x 26 root syslog 4096 Jul 21 13:29 /var/log
-rw-r--r-- 1 ntp ntp 0 Jul 21 13:13 /var/log/ntp.log