我构建了一个 PHP 应用程序,在其中为 Linux debian Jessie 创建命令行功能。一切正常,但我需要能够使用一些命令,例如 root 用户。
有没有办法使用 shell_exec() 或类似的命令通过 PHP 像 root 用户一样访问?
此命令行的想法是让有权访问该服务器的人可以从任何地方或设备通过互联网处理它。
这是控制台的图像:
通过 PHP 以 root 身份执行命令将使您很容易遭受各种恶意黑客攻击。
查看“sudo”文档。
您应该能够将所需的所有命令设置为“sudo”脚本。编写功能有限的特定脚本比暴露底层特权命令要好得多。
As in:
exec ('sudo getCurrentUser.sh')
首先,您需要添加 PHP 用于运行的用户(大多数情况下是www-data
) 到 sudo 组(如果尚未分配)。
然后,在你的 php 文件中:
使用 sudo -S,这样你就可以通过 echo 传递密码
$exec = "echo your_passwd | /usr/bin/sudo -S your command";
exec($exec,$out,$rcode);
如果您对路径有疑问 - 使用
"bash -lc 'echo your_passwd | /usr/bin/sudo -S your command'"
这样你就得到了一个新的 bash,它的作用类似于登录 shell,并且设置了路径
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)