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

问题描述 投票:0回答:1

我有一个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命令也会检索“权限被拒绝”错误。

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

php exec centos7
1个回答
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安全部分

© www.soinside.com 2019 - 2024. All rights reserved.