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

标签 php mysql bash

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

我所做的:我创建了一个 bash 脚本

#!/bin/bash

sudo useradd -m /home/$1

到目前为止,我在这个简单脚本上设置的任何参数都无法创建用户的主目录。

最佳答案

问题:

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

    sudo useradd -m 用户名

    sudo useradd -d/home/用户名 -m 用户名

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

    visudo

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

工作测试

以下内容在 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

关于php - 通过 Php 表单创建用户(Bash 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13900067/

相关文章:

javascript - 使用 DataTables 在服务器端模式下具有单独搜索输入的多个表

php - 选择 3 件销量较高的商品

mysql - 从表中选择直到找到特定值

mysql - 选择 mysql 中只有开始日期和结束日期的事件

php - 是否有与 Compass 等效的 PHP?

php - JQuery 帮助处理复选框及其值

mysql - 如何查找并存储用户出现在搜索条件中的次数

bash - 无法理解 .bashrc 中的一行

linux - 如何将linux命令输出存储到puppet中的变量中

linux -\!在 Bash 命令中