我有一个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命令也会检索“权限被拒绝”错误。
那么如何解决这个问题?如何在未获得“权限被拒绝”的情况下创建属于已定义用户组的用户?
答案 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安全部分