php执行脚本获得root权限问题
程序员文章站
2022-05-10 09:32:50
...
www用户为nginx或apache的运行用户
php调用shell脚本的svnup.php文件内容:
<?
set_time_limit(0);
//$output = array();
$ret = 0;
exec("/usr/bin/sudo /data0/shell/svnvp.sh", $output, $ret);
echo "Result:{$ret}";
print_r($output);
?>
/data0/shell/svnvp.sh是更新的脚本,主要内容是svn up。
还需要修改sudo配置文件,直接键如visudo命令编辑配置文件:
1. 注释Defaults requiretty
Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。
否则会出现sudo: sorry, you must have a tty to run sudo
2. 增加行 Defaults visiblepw
否则会出现 sudo: no tty present and no askpass program specified
我发现sudo-1.6.9p17-5.el5是不支持这个参数的,sudo-1.7.2p1-10.el5支持。
3. 赋予www用户执行svn权限
如,增加行:www ALL=(ALL) NOPASSWD: /data0/shell/svnvp.sh
注:NOPASSWD可以使在命令执行时不需要交互输入www 用户的密码
4.重启nginx或apache,让用户重新获得权限。
转载于:https://my.oschina.net/731135090/blog/522895
推荐阅读
-
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
-
web页面php调用shell脚本,执行svn update 更新的问题。
-
让PHP以ROOT权限执行系统命令的方法_php技巧
-
Docsify 脚本执行权限问题
-
Docsify 脚本执行权限问题
-
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法_PHP
-
利用php利用root权限执行shell脚本必须进行以下几个步骤
-
利用php利用root权限执行shell脚本必须进行以下几个步骤
-
php利用exec执行shell脚本有关问题
-
centos7 - centos php cli 模式执行命令生成的文件是root用户权限 会造成网页无法读取此文件