NTP 命令(例如ntpd
和 )ntpdate
具有特权并且属于根组。以非 root 身份运行这些命令的最佳方法是什么? Linux 的能力、所有权、任何方法?我有 openSUSE 13.2,并且我更喜欢是否有 Linux 功能可以提供帮助(当然如果适用的话)。我查看了 Linux 功能列表,尝试将CAP_DAC_OVERRIDE
, CAP_SYS_ADMIN
, CAP_SYS_RAWIO
,CAP_SYS_TIME
应用于两者ntpd
,ntpdate
但没有成功。
答案1
这两个配置选项应该可以帮助您提高ntpd
安全性:
NTPD_OPTIONS="-g -u ntp:ntp"
NTPD_RUN_CHROOTED="yes"
解释
NTPD_OPTIONS="-g -u ntp:ntp"
--g
启动时设置一次,ntpd 忽略设置为 1000 的默认阈值。-u ntp:ntp
使守护进程作为 ntp 用户和组运行。NTPD_RUN_CHROOTED="yes"
- 使 ntpd 运行chrooted,减少漏洞利用造成的损害。
由于ntpd以ntp用户身份运行,并使用ntpdate手动调整时间这不是一个好的做法,我不明白你为什么要费心 ntpdate。要强制手动查询,请使用sudo ntpd -gq
并将以下内容添加到您的/etc/sudoers
文件中:
your-username ALL = (root) NOPASSWD: /usr/sbin/ntpd -gq