useradd apachephp
vi /etc/httpd/conf/httpd.conf
将组和用户修改成apachephp,重启apache,然后用lsof -i:80查看apache的执行用户是否更改成功
修改/etc/sudoers文件,快捷命令为visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
apachephp ALL=(ALL) NOPASSWD: ALL (注意冒号后边有一个空格)
#Defaults requiretty (注释掉)
修改完sudoers文件后,在php里运用exec函数执行linux命令时,加入sudo就可以了
例:exec("sudo rm -rf *");
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
root表示被授权的用户,这里是根用户;
第一个ALL表示所有计算机;
第二个ALL表示所有用户;
第三个ALL表示所有命令;
全句的意思是:授权根用户在所有计算机上以所有用户的身份运行所有文件
%admin ALL=(ALL) ALL同上面一样,只不过被授权的成了admin这个组。
通用格式
/etc/sudoers的通用格式为:
user host run_as command
user:一位或几位用户,在/etc/group中可以用一个%代替它,组对象的名称一定要用百分号%开头。
host:一个或几个主机名;
run_as:作为哪个用户运行,常见选项是root和ALL
command:想让用户或组运行的一个或几个根级别命令。
例如:
hans ALL=(root) useradd,userdel
授权hans用户在所有计算机上以root身份运行useradd,userdel命令。
%smith ALL=(ALL) NOPASSWD:useradd,userdel
授权smith组全部成员在所有计算机上以所有用户的身份运行useradd,userdel命令;且运行时不必输入密码。