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

从PHP脚本向Ubuntu服务器添加用户,php,shell,ubuntu,sudo,Php,Shell,Ubuntu,Sudo,我正在尝试编写一个PHP脚本,它执行shell命令(通过system()?)向服务器添加新用户。我正在考虑使用useradd或adduser,但不知道如何让它工作。在脚本中执行useradd需要哪些标志?如何设置脚本的权限,使其正确执行?这不起作用: <? $user = $_GET['user']; system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user"); ?>

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

<?

$user = $_GET['user'];

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

?>

您需要在
/etc/sudoers
中添加一行

www-data ALL=(root) NOPASSWD: /usr/sbin/useradd
这允许www数据运行useradd命令

如果这一行存在于
/etc/sudoers
中,您可能还需要注释掉它:

Defaults requiretty
顺便说一句,用以下方法逃避您的输入是个好主意:


您需要在
/etc/sudoers
中添加一行

www-data ALL=(root) NOPASSWD: /usr/sbin/useradd
这允许www数据运行useradd命令

如果这一行存在于
/etc/sudoers
中,您可能还需要注释掉它:

Defaults requiretty
顺便说一句,用以下方法逃避您的输入是个好主意:


运行脚本的用户是否具有sudo权限?您将添加一个用户
$user
echo
应该做什么?@wallyk它是一个网页,所以我假设运行它的用户是Apache…?@KingCrunch是的,
$user
是一个GET变量。Echo仅用于测试目的。A,我明白了:双引号。运行脚本的用户是否具有sudo权限?您将添加一个用户
$user
echo
应该做什么?@wallyk它是一个网页,所以我假设运行它的用户是Apache…?@KingCrunch是的,
$user
是一个GET变量。Echo只是用于测试目的。A,我明白了:双引号。@stooplop:检查服务器日志和系统日志,可能还有安全日志(如果启用了安全性)。某个地方有一条消息提示问题的原因。@stooplop:检查服务器日志和系统日志,可能还有安全日志(如果启用了安全性)。某个地方有一条消息暗示问题的原因。