如何使用LAMP服务器通过php站点关闭我的系统?

如何使用LAMP服务器通过php站点关闭我的系统?,php,lamp,shutdown,system-shutdown,Php,Lamp,Shutdown,System Shutdown,这是我目前掌握的代码 地点: 我大概是从中得到这个想法的,但是,当我在本地主机上运行php脚本时,它没有出现 问题:如何使用LAMP服务器通过php站点关闭我的系统? 提前谢谢 无需为其创建脚本,您只需执行以下操作: shell_exec('sudo /sbin/shutdown -h now'); touch仅更新文件的修改时间,不执行脚本 您需要做的是为用户提供运行PHP/web服务器进程的权限,以执行shutdown命令,该权限通常保留给root用户,而不是普通web进程。最好的方法可能

这是我目前掌握的代码

地点:

我大概是从中得到这个想法的,但是,当我在本地主机上运行php脚本时,它没有出现

问题:如何使用LAMP服务器通过php站点关闭我的系统?


提前谢谢

无需为其创建脚本,您只需执行以下操作:

shell_exec('sudo /sbin/shutdown -h now');

touch
仅更新文件的修改时间,不执行脚本

您需要做的是为用户提供运行PHP/web服务器进程的权限,以执行
shutdown
命令,该权限通常保留给root用户,而不是普通web进程。最好的方法可能是通过sudoers文件,给用户(可能是
www-data
左右)通过
exec()
执行
sudo shutdown
的权限,而无需密码提示。阅读系统的
mansudoers
配置。要特别小心,不要授予超出此范围的权限,否则会破坏您的sudoers配置

sudoers文件需要一个条目,如:

www-data  ALL=NOPASSWD:  /sbin/shutdown
同样,请仔细阅读
mansudoers
,以确定您在这里做什么。仅使用
visudo
编辑sudoers文件以确保它不会出错

然后:


“touch”不执行文件()。如果要执行shell脚本,只需执行shell_exec(“/scripts/shutdown.sh”);即可;。确保脚本的路径正确。需要指出的是,这可能会成为web应用程序中的一个主要安全问题。我喜欢不必使用外部文件。但是我在
之间复制/粘贴代码,它不会在运行php的本地主机网站上显示op!
shell_exec('sudo /sbin/shutdown -h now');
www-data  ALL=NOPASSWD:  /sbin/shutdown
exec('sudo /scripts/shutdown.sh');