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