2011-09-03 114 views
2

我试图通过脚本更改系统时间。使用/ bin/date更改系统时间

基本上命令date -s "<date>"不起作用,因为我作为用户www-data运行该命令。虽然我编辑/etc/sudoers文件给用户www-data的root权限,但我仍然无法更改或设置时间。

可能是什么原因?

+3

请确保您设置了'sudoers'文件,以便www-data只能以超级用户权限运行'date',而不能运行任何应用程序。 –

+0

考虑这是否是一个好主意。 'ntpd'会自动维护你系统的时钟。 –

+0

ntpd很酷,但用户应该在这种情况下手动更改它。 – thetux4

回答

4

编辑的/ etc/sudoers文件后,做一个

sudo date -s 

命令。这将执行“Root”用户的实际日期命令。

仅仅编辑/ etc/sudoers是不够的,因为它不会给用户一个根,但是它会赋予用户使用sudo实用程序成为root用户的能力。

+2

通常情况下,'sudo'会在使用密码时提示输入密码。您可以使用'NOPASSWD'标记覆盖此标记。 –

+0

'www-data ALL =(ALL:ALL)NOPASSWD:ALL'都是这样改变的,但仍然不起作用 – thetux4

+0

thetux4,你怎么准确地开始'date -s'?尝试以相同的方式启动'id'实用程序并发布它的结果。 – osgx

0

也应该注意到,线

Default requiretty 

的sudoers文件 becommented。否则你会收到一条消息给STDERR,说

sudo: sorry, you must have a tty to run sudo 

当试图从外部世界调用脚本。

这是我的情况的一个问题。