php 获取apache用户权限_apache shiro 获取当前用户的权限 - CSDN
精华内容
参与话题
  • apache配置网站目录的读写权限

    千次阅读 2013-09-09 06:27:31
    分享下apache中配置网站目录文件权限的方法。 假设http服务器运行用户用户组是www,网站用户为centos,网站根目录是/home/centos/web。 操作方法与步骤: 1,首先,设定网站目录和文件的所有者和所有组为centos...

    分享下apache中配置网站目录文件权限的方法。

    假设http服务器运行用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web。

    操作方法与步骤:
    1,首先,设定网站目录和文件的所有者和所有组为centos,www。
    例如:
     

    复制代码代码示例:
    chown -R centos:www /home/centos/web

    2,设置网站目录权限为750,750是centos用户对目录拥有读写执行的权限。
    这样centos用户可以在任何目录下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限。
     

    复制代码代码示例:
    find -type d -exec chmod 750 {} \;

    3,设置网站文件权限为640,640指只有centos用户对网站文件有更改的权限,http服务器只有读取文件的权限,无法更改文件,其它用户无任何权限。
     

    复制代码代码示例:
    find -not -type d -exec chmod 640 {} \;

    4,针对个别目录设置可写权限。
    比如网站的一些缓存目录就需要给http服务有写入权限。例如discuz x2的/data/目录就必须要写入权限。
     

    复制代码代码示例:
    find data -type d -exec chmod 770 {} \;

    你一定注意到了,在以上的配置中,find命令的妙用。
    在操作多层次目录中的文件时,尤其是查找文件并设置权限时,find命令还是大有用武之地的。

    本文原始链接:http://www.jbxue.com/article/11598.html

    展开全文
  • PHP函数 exec 获取更高权限(sudo)

    千次阅读 2018-11-09 08:54:31
    在服务器环境 apache + php下,PHP函数exec()执行whoami得到的结果是apache

    在服务器环境 apache + php下,PHP函数exec()执行whoami得到的结果是 apache,说明是以用户apache来执行命令。

    $result = exec("whoami", $outcome, $status);
    var_dump($outcome);
    //array(1) { [0]=> string(6) "apache" }
    

    查看apache的配置文件/etc/httpd/conf/httpd.conf如下:
    vi /etc/httpd/conf/httpd.conf
    在这里插入图片描述

    可通过给用户apache添加可使用sudo命令的权限,来使exec()函数获取更高执行权限。

    以超级用户(如root用户)执行 visudo 来编辑配置文件。

    在配置文件中添加
    apache ALL=(ALL) NOPASSWD:ALL
    如下图:
    在这里插入图片描述

    至此,用户apache会有近似root的执行权限。
    在执行的命令前添加sudo,例:

    $result = exec("sudo service postfix restart", $outcome, $status);
    var_dump($outcome);
    // array(2) {
    //   [0]=>
    //   string(25) "关闭 postfix:[确定]"
    //   [1]=>
    //   string(26) "启动 postfix: [确定]"
    // }
    

    更多关于sudo命令的权限配置可移步
    http://man.linuxde.net/sudo

    展开全文
  • php利用root权限执行shell脚本(二)

    万次阅读 多人点赞 2012-12-02 20:16:54
    今天晚上:19:30分,这个困扰了我好久的问题终于解决,其中的原理也终于弄清楚了,总之是利用sudo来赋予Apache用户root的执行权限,下面记录一下: 利用php利用root权限执行shell脚本必须进行以下几个步骤:...

    今天晚上:19:30分,这个困扰了我好久的问题终于解决,其中的原理也终于弄清楚了,总之是利用sudo来赋予Apache的用户root的执行权限,下面记录一下:

    利用php利用root权限执行shell脚本必须进行以下几个步骤:(所有步骤都是我亲自实验,若有不妥可指出,谢谢!)

    1. 确定一下你的Apache的执行用户是谁。注:不一定就是nobody,我自行安装的httpd,我的Apache的用户就是daemon

    2. 利用visudo为你的Apache执行用户赋予root执行权限,当然还有设置无密码。注:为了安全起见,这里最好是新建一个用户,让他作为Apache的执行用户即可(修改httpd.conf文件,后面我会指出)

    3. 这步就简单了,编写你的脚本,利用php的exec,system...函数来执行。

    接下来就是详细的实现过程:

    1. 查看一下你的Apache的执行用户是谁: lsof -i:80         运行之后的结果为:

      

    从图中我们可以清楚的看到,httpd(也就是Apache)的执行用户为:exec_shell(注:这是我本机上改过之后的用户,只是用来说明一下,你的肯定不是这个!)  

    lsof 就是 List of file 的缩写,就是列出当前系统打开文件的工具,关于他具体的使用方法可参考:http://club.topsage.com/thread-234763-1-1.html   说的比较不错

    确定了你的Linux上Apache的执行者是谁,下面为了安全起见,新建一个用户将Apache的执行用户修改为我们新建的用户。

    2. 新建Apache的执行用户

        useradd your_exec_user  我们知道创建用户的时候都会默认创建一个用用户名同样的用户组,也就是说现在我们也有一个your_exec_user的用户组

        下面我们修改一下Apache的配置文件,使它的执行用户改为我们刚才新建的这个用户your_exec_user :

         vi  /home/houqingdong/httpd-exe/config/httpd.conf(这个是你的Apache所在的目录位置)

        找到下面的地方,修改为你新建的用户:your_exec_user

        

       重新启动Apache:   /home/houqingdong/httpd-exe/bin/apachect1  restart              -------------> 重启完之后你可以利用:lsof -i:80 查看一下。

    3. 执行visudo(或者是 vi /etc/sudoers) , 为your_exec_user赋予root权限,并且不需要密码,还有一步重要的修改(我被困扰的就是这个地方)

        visudo    找到这个地方,添加your_exec_user,并且设置无需密码

       

       我之前的时候,做完这里就去执行php脚本去了,结果一直创建不成功,而且很郁闷的是我切换到your_exec_user用户下直接执行是可以执行成功的。

       后来,查看了一下Apache的日志文件,发现:  

          这里明显看出,在执行sudo的时候说必须要有一个tty去运行sudo , 知道问题出在哪里问题就好解决了: vi /etc/sudoers   将下面的这句注释掉:     

          这是因为默认的情况下,执行sudo需要一个终端,这里注释掉就可以了。接下来,写你的shell脚本和php命令吧

    4. 这里贴一下我写的很简单的一个脚本,就是利用在php端传来的$directory和$name,在该目录下创建一个$name的目录

       

    #!/bin/bash
    #Program
    #     This program will execute mkdir: cd $directory ; mkdir $name
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    cd $1
    if [ ! -d $2 ]; then
        mkdir $2
    else
        echo "Already exist..."
        exit 1
    fi


    功能很简单,就是进入到$directory   判断要创建的目录名是否存在,  然后创建该目录 。

    构造的php执行函数:(部分)

    if($type=="dir"){
              $make_dir_command="/usr/bin/sudo /home/houqingdong/myshell/mkdir.sh /$directory/ $name" ;
              echo $make_dir_command;
              exec($make_dir_command,$output,$return);
    
                  if($return == 0){
                      echo "<script>alert('Build directory seccuss!');location.href='right.php?id=\"$directory\"';</script>";
                  }else{
                      echo "<script>alert('Build directory err!');history.go(-1);</script>";
                  }

    这里顺带提一句:构造的命令里面最好都使用绝对路径

    5. 在网页端的执行结果:

       

    提交之后,要过几秒中才会弹出执行结果的提示信息:

         执行成功,在我们的/home/目录下:

    哈哈。。。大功告成!(谢谢存哥的帮助指点!)

    展开全文
  • php利用sudo权限执行shell脚本

    万次阅读 2017-03-17 11:47:30
    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本 最近有一个需求,由于http的表单方式上传文件过慢,需要通过其他方式传输文件,讨论了scp与rsync后 最终决定使用scp工具 编写test....

    php作为一门服务器端脚本语言,也是可以调用系统命令的,这其中就包括了执行shell脚本


    编写test.sh脚本如下

    #! /bin/sh
    
    mkdir /www/a
    

    很简单的一个shell脚本 创建一个文件夹


    php脚本如下

    system('/usr/bin/test.sh')


    在运行前 首先需要验证的

    1.test.sh脚本是否具有可执行权限

    2.apache nginx phttp等web服务器是否有test.sh的权限

    3.由于是同步文件命令 所以需要确保用户对要下载的目录有写入权限

    4.由于我使用php版本高于5.4,已经删除了安全模式一说,说一也不存在运行在安全模式下

    5.执行的脚本请使用绝对路径 这点很重要


    但是  实际运行后  我发现输出了faild  说明脚本并没有执行成功  查了下原因  是因为apache用户不具备某些目录的执行权限(没个用户有没个用户的可执行目录,你的脚本需要在该目录下)   切换目录属主容易造成安全问题  在linux下 root用户是不受此限制的 所以 临时让用户可以切换到root权限 既可以简单的规避此类问题  如何操作呢?


    首先 查看你的apache用户或者nginx php-fpm用户

    可以使用 ps -ef  | grep httpd 命令来查看  其他同理

    经查我的apache用户为_www用户


    然后 visudo   或者 vim /etc/sudoers 找到

    ## Allow root to run any commands anywhere

    root    ALL=(ALL)       ALL这一行 在下边追加

    _www ALL=(root)  NOPASSWD:ALL

    第一列是用户  第二个是可以切换到的用户 我这里写的是root  如果你想让随意切换可以在这里写All  第三个是可以执行的脚本路径 ALL 表示所有


    最后 重启apache让用户重新获得权限


    修改php脚本

    system('sudo /usr/bin/test.sh')


    运行 执行成功~~~









    展开全文
  •  树莓派上的PHP主页无法运行具有root权限的命令或脚本原因,并不是PHP无法执行,而是Apache权限不够!!!! 2、PHP运行shell脚本或Python的方法  php给我们提供了system(),exec(),passthru()这三个函数来...
  • 配置apache服务器的用户认证

    万次阅读 2011-01-27 20:21:00
    用户认证是保护网络系统资源的第一道防线,它控制着所有登录并检查访问用户的合法性,其目标是仅 让合法用户以合法的权限访问网络系统的资源。基本的用户认证技术是“用户名+密码”。    Apache是目前...
  • PHPStudy无法启动Apache和MySQL  PHPStudy是一款国产、小巧、方便的服务器软件集成环境,我觉得对于PHP初学者来说,最难的是PHPApache(Nginx或IIS)、MySQL环境的配置,尤其是在Window环境下(比起类Unix环境...
  • 转自:http://www.25ysj.com/jzzhishi/441.html 和 ...(1)APMServ 5.2.6这个php的集成环境虽然很好用,但是官方君一直没有在更新,所以呢在XP环境下一直标线优秀的APM在win7下却是十分绊脚,apache和mysql同时启
  • apache用户名和密码验证

    万次阅读 2014-01-24 15:14:15
    一、Apache服务器已经内置用户验证机制 大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。前期准备,必须已经安装apache,如果还没安装,或者对安装很模糊的话,  第1步:我们在/var/www(apache的...
  • Apache Http Server已经在linux上安装完成,可是通过浏览器访问,却出现了“you dont have permission to access / on this server”.到网上Google了下,大致有以下2种解决办法:1.在httpd.conf文件中,有这么一段 ...
  • 本课程带领大家通过利用Apache解析漏洞绕过验证进行上传木马,从而使了解到上传木马并非难事,需要提高自身防御能力。 实验思路 上传正常图片和WEBShell利用Apache解析缺陷绕过上传
  • 服务器系统及软件常见漏洞

    万次阅读 2013-07-10 21:01:11
    最近由有一个什么事情,大家都懂。上头发了个加密传真,要求加强网络安全检查,于是乎所有服务器进行了大扫描,现整理一些常见漏洞...
  • Apache1. 查看 httpd 包是否可用yum list | grep httpd2. 安装 Apacheyum install httpd3. 配置 servernamevi /etc/httpd/conf/httpd.conf修改这行: ServerName localhost:804. 启动systemctl start httpd如果启动...
  • Apache运行机制剖析

    万次阅读 多人点赞 2013-05-16 17:06:37
    Apache运行机制剖析: 1. B/S交互过程 浏览器(Browser)和服务器(Web Server)的交互过程:   1、 浏览器向服务器发出HTTP请求(Request)。 2、 服务器收到浏览器的请求数据,经过分析处理,向...
  • mac 下配置php 既更改httpd.conf文件

    万次阅读 2012-10-08 21:19:11
    在搜索网上好多的帖子后发现在开启apache后,就要将php加入到apache时,都是在终端用sudo命令临时获取root权限,并且使用vim来修改httpd.conf。 可是对于我这个菜鸟不会用vim修改文本~~泪流满面,查找vim的使用没...
  • 我在代码审计知识星球里提到了Apache最新的一个解析漏洞(CVE-2017-15715): 除了帖子中说到的利用方法,我们还可以利用这个漏洞来绕过上传黑名单限制。 目标环境 比如,目标存在一个上传的逻辑:   &...
  • 介绍2种简单的Apache+PHP下实现URL重写的方法,第一种适合有服务器配置权限用户,第二种适合租用空间的用户,也作为我近期的学习心得的整理。 1、对于有服务器配置权限用户,推荐使用Apache的mod_rewrite模块,...
  • 前言 作为一篇解决类的文章,这里首先说一下大概的事情经过,...您或者没有权限访问此页面 然后Google了一圈英文圈之后(因为中文圈没有这个的解答)给出下面的解答方式 验证是否为session配置错误 我们首先...
  • 安装xampp后apache不能启动解决方法

    万次阅读 多人点赞 2012-07-04 22:28:15
    Xampp的获得和安装都十分简单,你只要到以下网址: http://www.apachefriends.org/zh_cn/xampp.html 下载xampp即可,我安装的是windows版本的Installer安装包,只要根据它的安装提示一路安装下去就可以了,十分方便...
  • apache的基本配置和动态页面配置

    万次阅读 2020-10-19 12:06:09
    文章目录Apache了解Apache的基本配置配置文件的功能介绍配置并使用域名访问配置动态页面:CGI,WSGI,SSICGIWSGISSI Apache 了解Apache的基本配置 安装Apache :yum groupinstall web* -y 启动服务并设置开机自启:...
1 2 3 4 5 ... 20
收藏数 29,318
精华内容 11,727
关键字:

php 获取apache用户权限