ntpd:拒绝写入 /var/log/ntpstats/(statsdir 目录)的权限

ntpd:拒绝写入 /var/log/ntpstats/(statsdir 目录)的权限

我在 Ubuntu 20.04 LTS 上运行 NTP 服务器。服务器运行良好,客户端正确轮询服务器。但当我想记录统计信息时,我总是收到权限错误。

我尝试在 ntp.conf 中包含以下几行:

statistics rawstats
statsdir /var/log/ntpstats/
filegen rawstats file raw type day link enable

当查看时systemctl ntp status

mars 05 09:08:48 RD-NTP ntpd[3534] : can't open /var/log/ntpstats/raw.20210305: Permission denied
mars 05 09:08:50 RD-NTP ntpd[3534] : can't open /var/log/ntpstats/raw.20210305: Permission denied
mars 05 09:08:52 RD-NTP ntpd[3534] : can't open /var/log/ntpstats/raw.20210305: Permission denied
mars 05 09:08:54 RD-NTP ntpd[3534] : can't open /var/log/ntpstats/raw.20210305: Permission denied

但对我来说,该目录具有正确的权限ls -al

drwxr-xr-x 2 ntp ntp 4096 april 2 2020 .

在选择默认文件夹之前,我尝试使用我创建的文件夹并使用此命令在权限中添加 ntp:,但chmod ntp:ntp /home/ubuntu/ntpstats/它不起作用,所以我切换到这个,但同样不起作用。

你知道为什么即使 ntp 在文件夹上占了上风,ntpd 仍然会不断出现错误吗?

答案1

导致权限问题的原因很可能不是权限位,而是 AppArmor。Ubuntu ntpd20.04 ( /etc/apparmor.d/usr.sbin.ntpd) 上的默认 AppArmor 配置文件包含:

...
/var/log/ntp w,
/var/log/ntp.log w,
/var/log/ntpd w,
/var/log/ntpstats/clockstats* rwl,
/var/log/ntpstats/loopstats*  rwl,
/var/log/ntpstats/peerstats*  rwl,
/var/log/ntpstats/protostats* rwl,
/var/log/ntpstats/rawstats*   rwl,
/var/log/ntpstats/sysstats*   rwl,
...

请注意,预期的文件名与ntpd生成的文件名不匹配。如果您将 AppArmor 配置文件行引用更改rawstats为:

/var/log/ntpstats/raw*   rwl,

并使用 重新加载 AppArmor systemctl reload apparmor,您的统计记录可能会起作用。

还请注意,loopstatspeerstats在诊断 NTP 问题时比更有可能有所帮助rawstats。(请参阅http://doc.ntp.org/current-stable/monopt.html#types了解更多信息。)就我个人而言,我认为如果您要费心记录原始统计信息,那么您最好捕获线路上的每个 NTP 数据包并使用 wireshark 或类似的协议分析器对其进行处理。

答案2

那么文件本身呢?它已经存在了吗?

尝试这些:

ls -ld /var/log/ntpstats
ls -ld /var/log/ntpstats/raw.20210305

chmod ntp:ntp /home/ubuntu/ntpstats/

小心!
chown变化所有权,而不是权限。
修改模式改变权限。

我建议你需要很好地掌握这两个概念,或者你可以做一个一团糟您的 Linux 机器。

相关内容