NTP权限问题
NTP permission issue
我给团队里的每个人都发了一个centos 7 虚拟机。时间可能会不同步。我发现我可以使用以下命令手动更新时间:
[no_sudo@rolling ~]$ ntpdate pool.ntp.org
26 Apr 18:10:11 ntpdate[25928]: bind() fails: Permission denied
[no_sudo@rolling ~]$
但是我只能将它更新为 sudo。我为团队 运行 执行的命令之一是一些自动化测试,并使用 date.time 作为名称。
我如何在虚拟机上自动更新时间,或更改该服务的权限,以便任何人都可以 运行 它而不管权限。
谢谢!
您应该配置和使用 ntpd
而不是 ntpdate
。
"How can I ether automate the updating of time on the virtual machine"
ntp 守护程序 ntpd
应该会处理这个问题。确定是 运行?
# start the ntp daemon
/etc/init.d/ntpd start
您还可以在 root 的 crontab 中添加更新时间的每日或每小时条目:
# To edit root's crontab
sudo crontab -e
# Add this line to run the command every day at noon (change as needed):
* 12 * * * /usr/sbin/ntpdate
"alter the permissions of that service, so anyone can run it"
这破坏了安全模型。但是,如果用户已经被允许使用 sudo
,您可以允许无密码执行该单个可执行文件,这样它就不会阻止您的脚本:
# To edit the sudoers file:
sudo visudo
# Then add something like this depending on the location of ntpdate:
username ALL= NOPASSWD: /usr/sbin/ntpdate
\#!/bin/sh
\#script to set the time using google - my ISP is blocking access to ntp server! major bummer!! :(
HOST="www.google.co.ke"
ping -q -c 2 $HOST > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "----\`date\`---------------------FAILURE----------------------------------"
echo "Failure: \`date\` -- $HOST is is DOWN! >>> better luck next time!"
else
echo "****\`date\`*********************BEGIN: SUCCESS*********************************"
mydateold="\`date\`"
echo "Success: \`date\` -- $HOST is UP >>> set the time!"
date -s "$(date -d "\`curl http://www.google.co.ke -v 2>&1 | grep "Date: " | awk '{ print " " " " " " " " " GMT"}'\`")"
mynewdate="\`date\`"
echo "Success: \`date\` >>> Date updated: OLD DATETIME: $mydateold and NEW DATETIME:
$mynewdate"
echo "****\`date\`*********************END: SUCCESS***********************************"
fi
\#EOF
\#Powered By Slackware Linux :)
我给团队里的每个人都发了一个centos 7 虚拟机。时间可能会不同步。我发现我可以使用以下命令手动更新时间:
[no_sudo@rolling ~]$ ntpdate pool.ntp.org
26 Apr 18:10:11 ntpdate[25928]: bind() fails: Permission denied
[no_sudo@rolling ~]$
但是我只能将它更新为 sudo。我为团队 运行 执行的命令之一是一些自动化测试,并使用 date.time 作为名称。
我如何在虚拟机上自动更新时间,或更改该服务的权限,以便任何人都可以 运行 它而不管权限。
谢谢!
您应该配置和使用 ntpd
而不是 ntpdate
。
"How can I ether automate the updating of time on the virtual machine"
ntp 守护程序 ntpd
应该会处理这个问题。确定是 运行?
# start the ntp daemon
/etc/init.d/ntpd start
您还可以在 root 的 crontab 中添加更新时间的每日或每小时条目:
# To edit root's crontab
sudo crontab -e
# Add this line to run the command every day at noon (change as needed):
* 12 * * * /usr/sbin/ntpdate
"alter the permissions of that service, so anyone can run it"
这破坏了安全模型。但是,如果用户已经被允许使用 sudo
,您可以允许无密码执行该单个可执行文件,这样它就不会阻止您的脚本:
# To edit the sudoers file:
sudo visudo
# Then add something like this depending on the location of ntpdate:
username ALL= NOPASSWD: /usr/sbin/ntpdate
\#!/bin/sh
\#script to set the time using google - my ISP is blocking access to ntp server! major bummer!! :(
HOST="www.google.co.ke"
ping -q -c 2 $HOST > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "----\`date\`---------------------FAILURE----------------------------------"
echo "Failure: \`date\` -- $HOST is is DOWN! >>> better luck next time!"
else
echo "****\`date\`*********************BEGIN: SUCCESS*********************************"
mydateold="\`date\`"
echo "Success: \`date\` -- $HOST is UP >>> set the time!"
date -s "$(date -d "\`curl http://www.google.co.ke -v 2>&1 | grep "Date: " | awk '{ print " " " " " " " " " GMT"}'\`")"
mynewdate="\`date\`"
echo "Success: \`date\` >>> Date updated: OLD DATETIME: $mydateold and NEW DATETIME:
$mynewdate"
echo "****\`date\`*********************END: SUCCESS***********************************"
fi
\#EOF
\#Powered By Slackware Linux :)