【问题标题】:PHP passwd errorPHP密码错误
【发布时间】:2011-04-08 20:49:25
【问题描述】:

我正在这样做:

$user = 'kevin';
$pass = 'nivek';
shell_exec('echo -e "' . $pass . '\n' . $pass . '" | sudo passwd ' . $user);`

但是当我执行这个时,我得到了这个错误:

Enter new UNIX password: Retype new UNIX password: Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged

为什么?我该如何解决这个问题以及如何隐藏 passwd 的输出?

【问题讨论】:

  • 该命令在控制台中有效吗?
  • 不,--stdin 在这里给出错误。
  • 谢谢,Wh1T3h4Ck5(多么好的名字;p)。它的工作! :D

标签: php shellexecute shell-exec passwd


【解决方案1】:

使用 --stdin 为 passwd 从标准输入读取。然后你就可以输入密码了。

【讨论】:

    【解决方案2】:

    您可以使用以下代码:

    $user = 'kevin';
    $pass = 'nivek';
    shell_exec('echo -e "' . $pass . '" | sudo passwd --stdin ' . $user);
    

    这似乎对我有用(尽管在没有 sudo 的情况下进行了测试,但您可能需要第二个)。

    我不确定 sudo 是否会起作用。

    【讨论】:

    • 对不起,错误的评论。收到此错误:passwd: unrecognized option '--stdin'
    • 您使用的是什么发行版?这至少在 Red Hat(和衍生产品)上运行良好。
    猜你喜欢
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2019-10-08
    相关资源
    最近更新 更多