Exec(" adduser myownuser")不在CentOS服务器上工作

时间:2015-04-03 06:27:55

标签: php linux nginx centos

我的CentOS 7有PHPFPMNginx(两者都是从源代码安装的,而不是yum代码)。在Nginx用户和群组上运行的PHPwww-data。现在我创建一个包含以下内容的PHP文件:

exec("adduser myownuser");

如果我在CentOS控制台中以root身份运行它,那么这个PHP文件就能成功运行。但是当我想在我的网络服务器根目录中运行它时,没有任何反应,脚本运行为www-data ..

有什么问题?

1 个答案:

答案 0 :(得分:0)

您需要向sudoers添加apache,无需密码。 您还需要通过单行脚本执行adduser,否则无法设置密码。

这是我的实施

$ccmd = "nohup sudo useradd -d /home/user -p $(openssl passwd -1 " . $thepassword . ") username &";
exec($ccmd);

我将此添加到我的sudoers文件

apache ALL =(ALL)NOPASSWD:ALL

根据您的发行版,您的apache用户可能会有所不同。要找出apache的用户名是什么,你可以回复exec(“whoami”);

在人们开始对我大喊大叫之前,最好只允许apache sudo访问你需要的一个命令。或者将apache添加到组并将该组分配给该命令。我不会在这里解释如何做到这一点,你可以搜索,因为到处都有关于这个的线程