【发布时间】:2015-07-31 00:23:20
【问题描述】:
我正在编写一个调用 bash 脚本的 PHP 程序。我正在使用 Linux (Centos)。我正在尝试通过在 PHP 页面中输入用户名和密码来在 Linux 中创建一个新用户。这是我正在使用的脚本:
egrep "^$1" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$1 exists!"
exit 1
else
sudo useradd -m -p $2 $1
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
这就是我从 PHP 调用脚本的方式:
echo exec("/var/www/html/addUser.sh ".$username." ".$password);
从终端运行它时它可以工作,但是从 PHP 调用脚本时它不起作用。这是权限问题。我应该怎么做才能让 PHP (apache) 也添加用户? 我尝试将 'apache' 作为用户和组添加到 visudo:
%apache ALL=(ALL) NOPASSWD: ALL
apache ALL=(ALL) ALL
还是不行。 有任何想法吗?谢谢。
【问题讨论】:
-
Holycow,从 /etc/sudoers 中删除该条目。您实际上授予 Apache 对您系统的完全访问权限。
-
仍然没有让它工作。还有其他想法吗?谢谢。
标签: php linux bash permissions