系统相关
首页 > 系统相关> > php – 使用shell_exec(‘passwd’)更改用户的密码

php – 使用shell_exec(‘passwd’)更改用户的密码

作者:互联网

我需要能够通过网页(在受控环境中)更改用户的密码.
所以,为此,我正在使用此代码:

<?php
$output = shell_exec("sudo -u dummy passwd testUser testUserPassword");
$output2 = shell_exec("dummyPassword");
echo $output;
echo $output2;
echo "done";
?>

我的问题是这个脚本没有改变用户“testUser”的密码.
我究竟做错了什么?

谢谢

解决方法:

另一个选择是有一个shell脚本,比如叫做passwd_change.sh,看起来像这样:

#!/usr/bin/expect -f
set username [lindex $argv 0]
set password [lindex $argv 1]

spawn passwd $username
expect "(current) UNIX password: " 
send "$password\r"
expect "Enter new UNIX password: "
send "$password\r"
expect "Retype new UNIX password: "
send "$password\r"
expect eof

然后在你的PHP代码中执行:

<?php
shell_exec("sudo -u root /path/to/passwd_change.sh testUser testUserPass");
?>

标签:php,sudo,shell-exec,passwd
来源: https://codeday.me/bug/20190717/1485882.html