我有一个基于 apache2 和 php5 的 Web 服务器。我想使用 Web 服务器关闭计算机,但要关闭计算机,当前用户必须是“root”用户,因为关闭 PC 的命令“shuwdown -h now”必须在 root 用户下执行。php
用户名为“www-data”。
我有这样的文件
文件:shutdown.sh
#!/bin/bash
echo $(shutdown -h now);
文件:shutdown.php
如果调用该脚本,则应执行脚本“shutdown.sh”。
<?php
echo "Shutdown";
echo exec ( 'shutdown.sh' );
?>
问题:如何以 root 用户身份(无需密码)执行文件“shutdown.sh”。或者还有其他方法吗?
答案1
您可以授予 www-data 执行关机命令的权限。试试这个:
以 root 身份使用命令“visudo”编辑 /etc/sudoers 文件。最后几行应如下所示:
# 命令别名规范
# 用户权限规范
根 ALL=(全部:全部) 全部
# admin 组的成员可以获得 root 权限
%admin 全部=(全部) 全部
因此,在文件末尾插入:
www-data ALL = NOPASSWD: /sbin/shutdown
然后退出编辑器并保存(CTRL+x)。
用户 www-data 应该能够立即调用关机,无需 sudo 密码。