在 openVZ 主机上运行 ntpd 时出错:cap_set_proc() 未能删除 root 权限:

Mik*_*e B 7 centos ntpd ntp

CentOS 6.x | OpenVZ

我想在我的 vps 主机上运行 NTP 服务器。这可能吗?

当我尝试启动 ntpd 时,它立即失败并出现以下错误:

Mar 14 22:47:44 ev1 ntpd[3456]: cap_set_proc() failed to drop root privileges: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我已将其本地化为 /etc/sysconfig/ntpd 中的设置

# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g"
Run Code Online (Sandbox Code Playgroud)

启用此行时,它会失败(大概是因为共享内核拒绝允许权限更改)。如果我将其注释掉,ntpd 运行良好,但以 root 身份运行,这是一件坏事。

无论如何让ntpd在openVZ上以ntp用户身份运行?诚然,我知道在 OpenVZ 服务器上运行它是一个好主意,但我仍然想尝试一下。

小智 6

您应该添加功能选项sys_time”,如[用户] OpenVZ 中的时钟如何工作?通过命令:

vzctl set 101 --capability sys_time:on --save
Run Code Online (Sandbox Code Playgroud)

您当然应该用容器的 CTID 替换“101”。

然后重新启动机器/容器。现在,ntpd应该使用“ ntp”用户按预期运行。

然后,您可以检查ntpd服务器是否与:

/etc/init.d/ntpd status
Run Code Online (Sandbox Code Playgroud)

和:

ntpq -c as
ntpq -c pe
Run Code Online (Sandbox Code Playgroud)