我对一个完全逃脱的问题感到非常难过 - 我似乎无法找到任何特定的文档。
我刚刚转到php7.1来重构一个在php5.3上运行多年的webapp。在旧版本中,我使用
之类的东西exec("sudo -u root -S some_command < /path/to/secret/password/file");
它总是完美无缺,今天仍然如此。 在使用php7.1的不同域下的同一台服务器上,我正在尝试同样的事情,但我没有成功。
exec("sudo -u root -S some_command 2>&1 < /path/to/secret/password/file", $output, $retval);
给我一条错误消息
["[sudo] password for otheruser:","Sorry, try again.","sudo: 3 incorrect password attempts"]
它显然尝试使用 otheruser 作为用户而不是root !什么?! Apache以www-data运行,其他用户(名称已更改)完全不同(FTP用户)并且在该上下文中不起作用。
sudoers文件对于两个域/ php版本都是相同的(如果我没弄错的话)。
所以它似乎归结为php版本的差异。任何见解都可能有所帮谢谢!