从PHP脚本将用户添加到Ubuntu服务器

时间:2011-04-04 23:44:55

标签: php shell ubuntu sudo

我正在尝试编写一个执行shell命令的PHP脚本(通过system()?)来向服务器添加新用户。我正在考虑使用useraddadduser但我不知道如何让它发挥作用。在脚本中执行useradd需要哪些标志?我如何设置脚本的权限,以便正确执行?这不起作用:

<?

$user = $_GET['user'];

system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user");

?>

1 个答案:

答案 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");