PHP exec启动的UserAdd命令shell脚本上的权限被拒绝

时间:2018-03-02 23:31:02

标签: php exec centos7

我有一个PHP exec命令,它在Linux Centos 7.2中启动一个bash脚本

#!/bin/sh
# \
mkdir /var/www/html/folder1/$1

useradd -g usergroup -d /var/www/html/folder1/$1 $1

sudoers以这种方式配置。 'apache'是我安装中的Apache用户和组:

apache    ALL=(ALL) ALL
apache ALL=(ALL) NOPASSWD: /usr/sbin/useradd

mkdir命令按预期工作。 但即使我在sudoers中明确地告知组/用户apache有权执行useradd,useradd命令也会检索“权限被拒绝”错误。

那么如何解决这个问题?如何在未获得“权限被拒绝”的情况下创建属于已定义用户组的用户?

1 个答案:

答案 0 :(得分:0)

我最终以这种方式设置了useradd文件的完全权限:

chmod 7777 /usr/sbin/useradd

我不知道这是否足够安全无论如何都有效。 在此之后我继续收到二次错误,如:

nscd:只允许root用户使用此选项

与useradd模块的用户缓存清除失败有关。 但至少在这个阶段的用户是正确添加的。 目前不知道缓存刷新失败是否会导致未来出现其他问题。

编辑:我还要1)为我的php脚本做“chown root:root myscript.php”。 2)将bash脚本放在/ usr / sbin中3)使用chmod + x使bash脚本可执行4)在php中执行它:“sudo bashscript.sh”4)和/或添加/ usr / sbin目录在sudoers安全部分