通过Php表单创建用户(Bash脚本)

时间:2012-12-16 09:35:22

标签: php mysql bash

任何人都可以帮我解决这个简单的事情吗?我有一个php注册表单,可直接与MySQL数据库通信,并在有人填写表单时添加用户。当我想为每个用户创建一个主目录(使用bash脚本)进行此注册时,问题就开始了。

我做了什么:我创建了一个bash脚本

#!/bin/bash

sudo useradd -m /home/$1

我在这个简单的脚本上做的任何参数到目前为止都没有用来创建用户的主目录。

1 个答案:

答案 0 :(得分:1)

<强>问题:

  1. 显式主目录:您的命令行语法错误。请尝试以下方法:

    sudo useradd -m username

    sudo useradd -d /home/username -m username

  2. PHP是sudoer吗?只有某些帐户才能执行sudo。检查sudoers文件中是否列出了PHP运行的帐户。您通常可以轻松地使用

    文件

    visudo

  3. PHP chroot - ed?如果是这样,您可能无法使用任何合理代码从脚本创建新的Linux用户帐户。

  4. 工作测试

    以下在Debian(没有sudo)下为我工作。

    newuser.sh

    #!/bin/bash
    useradd -d /home/$1 -m $1
    

    newuser.php

    <?php
      exec('/bin/bash /var/www-scripts/newuser.sh joe');
    ?>
    

    测试调用: php newuser.php

    如果您可以执行相同的测试(但根据需要添加sudo),那么在Web服务器调用时它无法工作的唯一原因是安全问题。这可能是一个chroot环境,或者缺乏sudoer特权。

    其他资源

    通过查看以下内容,您可以了解其他人如何解决此问题:

    1. http://www.weberdev.com/get_example.php3?ExampleID=3766
    2. http://www.linuxforums.org/forum/programming-scripting/176031-solved-crafting-php-script-create-unix-user.html