我希望在没有密码提示的情况下执行命令sudo ls -l
。
$streams = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w") // stderr
);
$process = proc_open('sudo ls -l', $streams, $pipes);
if (is_resource($process)) {
list($stdin, $stdout) = $pipes;
fwrite($stdin, "password\n"); //must write password, but not
fclose($stdin);
var_dump(stream_get_contents($stdout));
fclose($stdout);
$returnCode = proc_close($process);
echo "Return code $returnCode\n";
}
执行密码提示后仍然存在,如何避免呢?
答案 0 :(得分:0)
您是否尝试将命令ls添加到/etc/sudoers
文件?
您可以授权用户在没有密码的情况下执行某些命令。
user ALL= NOPASSWD: /bin/ls