1

我想在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";
}

执行后密码提示依然存在,如何避免呢?

4

1 回答 1

0

您是否尝试将命令 ls 添加到/etc/sudoers文件?您可以自动让用户执行一些没有密码的命令。

user ALL= NOPASSWD: /bin/ls
于 2013-02-06T09:46:48.153 回答