是否可以使用 php 代码更改 Linux 服务器日期?
有什么方法可以向 Apache 授予必要的权限来执行此操作吗?
授予 Apache root 权限的过程是什么?
答案1
您可以使用 sudo 来完成此操作,而无需向 apache 授予“root”权限。
apache <hostname> = (root) NOPASSWD: /bin/date
英文大致翻译为:
让 apache 用户
/bin/date
以 root 用户身份运行该命令,而无需在服务器上输入密码<hostname>
。
使用 sudo(或在任何 RBAC 模型中执行等效操作)允许您仅向特定用户公开实现您的目标所需的权限。
然后在 PHP 中,只需将 sudo 与命令一起传递即可:
exec("sudo -su /bin/date <newdate>");
另外,如果这不适合您,请检查您的/etc/sudoers
文件requiretty
:
Defaults requiretty
您需要将其注释掉,以便 sudo 能够与 apache 一起使用。