• 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:这样配置服务器很不安全,还是需要寻求更安全的方法

  • 相关阅读:
    资源网站
    远程服务SSH
    Samba服务配置
    练习raid5
    raid(0、1)
    NFS服务器配置(windows访问)
    LVM磁盘阵列
    ISCSI服务器配置
    Zibbix监控
    MySQL Replication配置
  • 原文地址:https://www.cnblogs.com/bo083/p/2806570.html
Copyright © 2020-2023  润新知