我可以以任何用户身份登录,sudo whoami
无需密码登录,并获得“root”。当我使用php -r 'echo exec("sudo whoami");'
尝试此操作时,无论用户是谁,它都能正常工作。但是,当我通过网络服务器(nginx)运行时,我什么都没得到。是什么给了什么?
ps xau | grep php
root 207 0.0 2.6 19876 4992 ? Ss 23:16 0:00 php-fpm: master process (/etc/php/php-fpm.conf)
http 228 0.0 1.6 19876 3152 ? S 23:16 0:00 php-fpm: pool www
http 229 0.0 1.6 19876 3144 ? S 23:16 0:00 php-fpm: pool www
root 326 0.0 0.3 2504 692 pts/0 S+ 23:59 0:00 grep php
答案 0 :(得分:0)
我将2>&1
附加到我的命令以查看错误,并说“sudo:command not found”。
然后我将putenv('PATH=' . getenv('PATH') . ':/usr/sbin');
添加到我的php脚本中并且它有效。