使用 shell_exec 运行 useradd

使用 shell_exec 运行 useradd

尝试授予 /etc/passwd 权限后,useradd 命令无法从 php 的 shell_exec() 执行;我还尝试使用 visudo 更改 passwd 的所有者,错误仍然存​​在

useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.

如何使用 php 创建 bash 用户帐户?

答案1

问题在于 APACHE 用户权限。
您可以为脚本授予 sudo 权限,但从安全角度来看,这不是最好的主意。
或者使用ssh2_connectssh 连接到您的服务器,并以 root 身份运行 useradd。

$connection = ssh2_connect('localhost', 22);
if (ssh2_auth_password($connection, 'root', '')) {
    $username = 'username';
    $password = 'password';
    ssh2_exec($connection, "useradd $username -m -p $password -d /home/$username/ -s /bin/false");
} else {
    die('Authentication Failed...');
}

ssh2_连接ssh2_auth_密码文档。

相关内容