修改php执行用户,并使其拥有root权限

时间:2021-05-03 21:04:39

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命令;且运行时不必输入密码。