使用 PHP 更改服务器日期

use*_*132 3 date

是否可以使用 php 代码更改 Linux 服务器日期?

有什么方法可以向 Apache 授予必要的权限来执行此操作吗?

授予 Apache 根权限的程序是什么?

Tim*_*edy 5

您可以使用 sudo 执行此操作,而无需向 apache 授予“root”权限。

apache <hostname> = (root) NOPASSWD: /bin/date
Run Code Online (Sandbox Code Playgroud)

这在英语中大致翻译为:

让 apache 用户/bin/date以 root 用户身份运行命令,而无需在服务器上输入密码<hostname>

使用 sudo(或在任何 RBAC 模型中执行等效操作)允许您仅向特定用户公开您需要的权限,以实现您的目标。

然后在 PHP 中,只需将 sudo 与命令一起传入:

exec("sudo -su /bin/date <newdate>");
Run Code Online (Sandbox Code Playgroud)

另外,如果这对您不起作用,请检查您的/etc/sudoers文件requiretty

Defaults        requiretty
Run Code Online (Sandbox Code Playgroud)

您需要将其注释掉,以便 sudo 与 apache 一起使用。