PHP shell_exec 访问 deb 9 上的系统服务
PHP shell_exec to access a system service on deb 9
我正在尝试使用 PHP shell_exec
访问 deb 系统服务,但我无法使其正常工作。
这是我试图从 php 脚本 运行 执行的命令:
shell_exec('sudo service icecast2 stop');
但它不起作用有两个原因..
1) 我不确定我是否在 /etc/sudoers
中授予了正确的用户权限?
%www-data ALL=NOPASSWD: /sbin/???????
2) ???????? = 我不确定在 /sbin 中指向哪里以允许访问系统服务?我已经尝试了多种方法,但由于我不确定我错在了哪一部分(可能两者都错了),所以我什么都做不了。
感谢任何帮助;)
在我的 Debian 系统上 service
在 /usr/sbin
中,而不在 /sbin
中。所以应该是:
%www-data ALL=NOPASSWD: /usr/sbin/service
您还应该在 shell_exec()
命令中使用完整路径,因为 /usr/sbin
可能不在网络服务器的 $PATH
.
中
shell_exec('sudo /usr/sbin/service icecast2 stop');
我正在尝试使用 PHP shell_exec
访问 deb 系统服务,但我无法使其正常工作。
这是我试图从 php 脚本 运行 执行的命令:
shell_exec('sudo service icecast2 stop');
但它不起作用有两个原因..
1) 我不确定我是否在 /etc/sudoers
中授予了正确的用户权限?
%www-data ALL=NOPASSWD: /sbin/???????
2) ???????? = 我不确定在 /sbin 中指向哪里以允许访问系统服务?我已经尝试了多种方法,但由于我不确定我错在了哪一部分(可能两者都错了),所以我什么都做不了。
感谢任何帮助;)
在我的 Debian 系统上 service
在 /usr/sbin
中,而不在 /sbin
中。所以应该是:
%www-data ALL=NOPASSWD: /usr/sbin/service
您还应该在 shell_exec()
命令中使用完整路径,因为 /usr/sbin
可能不在网络服务器的 $PATH
.
shell_exec('sudo /usr/sbin/service icecast2 stop');