如何以非 root 用户身份运行 ntp 命令?

3bd*_*lla 5 root ntpd ntp

诸如ntpd和 之ntpdate类的NTP 命令具有特权并且属于根组。以非 root 身份运行这些命令的最佳方法是什么?Linux 功能、所有权、任何方法?我有 openSUSE 13.2,我更喜欢 Linux 功能是否有帮助(当然如果适用的话)。我看着到Linux的功能列表中,我曾尝试申请CAP_DAC_OVERRIDECAP_SYS_ADMINCAP_SYS_RAWIOCAP_SYS_TIMEntpdntpdate它没有工作。

小智 3

这两个配置选项应该可以帮助您提高ntpd安全性:

NTPD_OPTIONS="-g -u ntp:ntp"
NTPD_RUN_CHROOTED="yes" 
Run Code Online (Sandbox Code Playgroud)

解释

  • 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