最近写防火墙的WEB版,需要在PHP中调用linux系统命令,但是防火墙有关的执行都需要管理员权限才能执行。

在ubuntu下,Apache2的运行账户默认是www-data,默认是不能通过sudo来获得管理员权限的。查了一下,试了几种做法,搞定了。

#1 为了以防万一,要查一下apache的运行账户

<?phpexec("whoami",$output,$result);print_r($output);?>

运行一下,得到当前账户www-data

#2 给与www-data sudo权限,并且免密码

命令行输入: nano /etc/sudoers  或者 visudo

插入一行  www-data ALL=(ALL:ALL) NOPASSWD:ALL

如下图所示

#3 应用

<?php
exec("sudo iptables-save",$output,$result);
print_r($result);
?>

如上所示,即可在管理员权限下执行shell

需要注意的是,如上的操作会给服务器带来很大的安全隐患,因为www-data用户不需密码就可以提升到管理员权限。如果Apache被坏人拿下,那么服务器也就被人轻易的拿下了~~需慎重~~

转载于:https://www.cnblogs.com/kuoaidebb/p/4286730.html

ubuntu - sudo in php exec相关推荐

  1. ubuntu sudo apt-get update 失败 解决方法

    ubuntu sudo apt-get update 失败 解决方法 参考文章: (1)ubuntu sudo apt-get update 失败 解决方法 (2)https://www.cnblog ...

  2. 2021-08-13 Ubuntu sudo apt-get install 提示Media change : please insert the disc labeled

    一.Ubuntu sudo apt-get install 提示Media change : please insert the disc labeled,如下图 二.解决方法如下,我装是server ...

  3. Linux/Ubuntu sudo不用输入密码的方法

    通常我们并不以root身份登录,但是当我们执行某些命令 (command)时需要用到root权限,我们通常都是用"sudo command"来执行command.由于使用Ubunt ...

  4. 【Linux】虚拟机 Ubuntu sudo指令实现Gparted安装和 dsv/sda1 内存扩展

    Gparted安装和 dsv/sda1 内存扩展 1. Gparted简介 2.命令实现Gparted安装和扩展(建议大家用此方法,ISO文件安装太坑爹) 3.iso实现Gparted安装和扩展 1. ...

  5. Ubuntu Sudo 无法解析的主机

    如果对ubuntu在安装时候的主机名称不满意,可以使用如下的方法进行修改 需要注意的是如果只修改其中一个,使用sudo的时候会报"无法解析主机名称的"错误 1.进入etc目录,使用 ...

  6. linux php 执行python,Linux(Ubuntu)下php使用exec调用python程序返回json数据

    问题起因:解决乱码问题,及解决PHP调用python外部程序的权限问题 数据中带有中文,数据来自python读取微软数据库mssql2005 server的数据 操作注意事项主要有两点: 1.pyth ...

  7. Ubuntu sudo 出现unable to resolve host 解决方法

    Ubuntu环境, 假设这台机器名字叫abc(机器的hostname), 每次执行sudo 就出现这个警告讯息: sudo: unable to resolve host abc 虽然sudo 还是可 ...

  8. ubuntu sudo apt-get update 失败 解决方法

    sudo apt-get update 报了一堆错误: Err http://cn.archive.ubuntu.com trusty InRelease Err http://cn.archive. ...

  9. ubuntu: sudo apt-get update老是失败怎么办?

    1. 背景 我的Ubuntu是12 的,太老了, 执行sudo apt-get update老是失败:各种404 2. 解决办法 网上找了很多办法,都不行. 最终还是这个办法管用: 打开:Ubuntu ...

  10. Ubuntu sudo apt-get update提示 Failed to fetch,解决办法

    问题: 执行sudo apt-get update提示:Failed to fetch chen@ubuntu:~/soft/Python-2.7.12$ sudo apt-get update Ge ...

最新文章

  1. Android强制设置横屏或竖屏
  2. Ext.net中ComboBox如何绑定数据库中的值
  3. 旋转图像—leetcode48
  4. 国科大prml15-BP
  5. 自制 移动端 纯原生 Slider滑动插件
  6. 360互联网技术训练营第七期 - “遇见”PIKA
  7. stream场景用法总结
  8. IIS 发布之后 您要找的资源已被删除、已更名或暂时不可用。 404.0 解决方法
  9. Windows Phone 7.5 OS版本7.10.8107.79 官方更新
  10. qq令牌64位密钥提取_令牌QQ号代码64位数字+字母只截图保存可转换文字再来获取口令...
  11. Qt自定义实现的日历控件
  12. yate工具的使用求教
  13. OFFPIPE 海底管道铺设计算分析软件
  14. 凉茶配方案终审 加多宝赔偿近2亿元
  15. 利用three建立一个3d园区
  16. 【西祠日志】【17】初识AngularJS,下一代Web应用的前端
  17. linux获取控制台窗口句柄,C#获取控制台句柄的方法
  18. git仓库报错【 ! [rejected] master -> master (non-fast-forward)error: failed to push some refs to】
  19. 我的世界服务器无限装备指令2020,我的世界手机版指令表
  20. 皮卡丘的python程序_皮卡丘第一种

热门文章

  1. opencv出错:error: (-213:The function/feature is not implemented) Unknown/unsupported array type
  2. 创业失败反思:市场跟销售完全是两回事
  3. Ubuntu 16.04上安装Code::Blocks
  4. php png 透明缩略图,php生成图片缩略图,支持png透明
  5. xp电脑多少位怎么看_怎么看电脑是32位还是64位
  6. linux下默认分区system的id,Linux学习笔记之系统中的分区和文件系统
  7. ocr 哪个好 外文_5 款堪称神器的高质量软件,每一款都好用到不想卸载
  8. 图书管理系统c++_图书管理功能
  9. mysql的读写分离工具_mysql 读写分离工具
  10. 频谱分析_滚动轴承的频谱分析