Debian - chroot ntpd 问题

Debian - chroot ntpd 问题

我想在 chroot 环境中配置 ntp 守护进程。我使用的操作系统是 Debian 9.1,内核为 3.16.0-4-686-pae

服务运行如下:/usr/sbin/ntpd -p /var/run/ntpd.pid -i /var/chroot/ntp -u ntp:ntp -l /var/log/ntpd.log

我面临的问题是:

1) ntp 守护程序无法解析 DNS 名称,但其使用 IP 地址时可按预期工作。我在 chroot 路径中是否遗漏了任何特殊文件?

ntpd[2936]: retrying DNS 1.gr.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 1.europe.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 0.europe.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 0.gr.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 0.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 1.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 2.pool.ntp.org: Name or service not known (-2)
ntpd[2936]: retrying DNS 3.pool.ntp.org: Name or service not known (-2)

2) 尽管 ntp 服务器以“-i /var/chroot/ntp”启动,但 ntpd.conf 内并非所有路径都与此目录相关。例如:

ntp配置文件

漂移文件变量/lib/ntp/ntp.drift

日志档案/var/chroot/ntp/var/log/ntpd.log

日志文件需要完整路径;ntpd 是否应该能够访问 chroot 目录之外的文件?

答案1

在 chroot 中运行软件时,需要在 chroot 中安装必要的系统库和设置,以使软件正常运行。例如,链接库需要位于 chroot 中。可以使用 来ldd -v显示特定应用程序使用哪些库。

如果您运行chroot,则 chroot 目录为/var/chroot/ntp,那么该目录将是/chroot 内的目录。例如,logfile /var/chroot/ntp/var/log/ntpd.log将指向/var/chroot/ntp/var/chroot/ntp/var/log/ntpd.log主文件系统中的 。

因此,根据您的情况,您需要设置logfile /var/log/ntpd.log

答案2

问题是部分更改 /etc/nsswitch.conf 后解决

主办方: 文件域名系统

主机:dns

现在 DNS 查询可以正常工作。第二个问题仍然存在:PID 文件和日志必须更改为绝对路径,而不是与 chroot 目录相关。

ntp 守护进程在创建日志文件后是否会放弃权限?

相关内容