我正在尝试编写一个执行shell命令的PHP脚本(通过system()
?)来向服务器添加新用户。我正在考虑使用useradd
或adduser
但我不知道如何让它发挥作用。在脚本中执行useradd
需要哪些标志?我如何设置脚本的权限,以便正确执行?这不起作用:
<?
$user = $_GET['user'];
system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user");
?>
答案 0 :(得分:4)
您需要在/etc/sudoers
添加一行
www-data ALL=(root) NOPASSWD: /usr/sbin/useradd
这允许www-data运行useradd命令。
如果此行存在于/etc/sudoers
:
Defaults requiretty
顺便说一下,使用escapeshellarg()来逃避输入是个好主意:
$user = escapeshellarg($_GET['user']);
system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user");