有人能帮我解决这个简单的事情吗?我有一个 php 注册表单,它直接与 MySQL 数据库通信,并在有人填写表单时添加用户。当我还想为进行此注册的每个用户(使用 bash 脚本)创建一个主目录时,问题就开始了。
我所做的:我创建了一个 bash 脚本
#!/bin/bash
sudo useradd -m /home/$1
到目前为止,我在这个简单脚本上设置的任何参数都无法创建用户的主目录。
最佳答案
问题:
显式主目录:您的命令行语法错误。请尝试以下操作:
sudo useradd -m 用户名
或
sudo useradd -d/home/用户名 -m 用户名
PHP 是 sudoer 吗? 只有某些帐户能够执行 sudo。检查 sudoers 文件中是否列出了运行 PHP 的帐户。您通常可以轻松地使用该文件
visudo
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 权限。
其他资源
您可以通过查看以下内容来了解其他人如何解决此问题:
关于php - 通过 Php 表单创建用户(Bash 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13900067/