zoukankan      html  css  js  c++  java
  • apache调用php执行系统命令

    一、为了可以通过apache调用php执行系统命令,需要首先赋予apache用户超级用户权限

    赋予用户超级用户权限的方法

    在/etc/sudoers中添加
    apache        ALL=(ALL)       NOPASSWD: ALL

    注:1、由于通过apache执行命令不通过tty,所以需要注释掉/etc/sudoers文件中的Defaults requiretty这行
    否则会出现sudo: sorry, you must have a tty to run sudo的错误

    2、修改完sudoers文件要确保该文件权限为440,否则会报错误

          sudo: no valid sudoers sources found, quitting

    添加一个例子

    <?php
            echo exec('/usr/bin/sudo /usr/bin/whoami 2>&1');
    ?>

    如果上面执行完成,用浏览器调用php页面报出错误
    unable to change to sudoers gid: Operation not permitted
    那么可能需要关闭selinux

    二、关闭selinux的方法如下


    1 永久方法 – 需要重启服务器

    修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

    2 临时方法 – 设置系统参数

    使用命令setenforce 0

    附:
    setenforce 1 设置SELinux 成为enforcing模式
    setenforce 0 设置SELinux 成为permissive模式

    ps:这样配置服务器很不安全,还是需要寻求更安全的方法

  • 相关阅读:
    基于 OAI 部署私有的 4G EPS
    Ubuntu Snap 简述
    OAI SDR LTE 基站部署
    企业文化二三谈
    OpenStack 的 SR-IOV 虚拟机热迁移
    在 ThinkPad E470 上安装 Ubuntu 16.04 无线网卡驱动
    读写可编程 SIM/USIM 卡
    4G LTE/EPC UE 的附着与去附着
    4G EPS 的网络协议栈
    Java- 类型转换
  • 原文地址:https://www.cnblogs.com/bo083/p/2806570.html
Copyright © 2011-2022 走看看