首页 > 技术文档 > 使php以root权限执行命令

使php以root权限执行命令

2013年10月24日 发表评论 阅读评论

最近由于要做一个php的接口,但是因为权限问题,不能执行一些特定命令,原因是php以nobody来运行。

网上搜索了些解决方案,一种是使用su的方法,一种是以c程序来实现,还有一种是用super程序实现。

比较了下,觉得super命令php调用起来更为方便一些,因此本篇主要介绍super的简单实现方法。

一、首先下载安装super,过程如下:
[root@ossec.cn ~]#wget ftp://ftp.ucolick.org/pub/users/will/super-3.30.0-tar.gz
[root@ossec.cn ~]#tar zxvf super-3.30.0-tar.gz
[root@ossec.cn ~]#cd super-3.30.0
[root@ossec.cn super-3.30.0]#./configure
[root@ossec.cn super-3.30.0]#make && make install
[root@ossec.cn ~]#super
super
super version 3.30 patchlevel 0
Commands available to user root (use option `-H’ for a long-winded listing):

Command Name Comments
or Pattern
———— ——–
安装完成后,执行super,显示如上,则证明已安装完毕。

二、接下来配置super(需要配置super可认的别名命令)
[root@ossec.cn ~]#vi /usr/local/etc/super.tab
例,如果你想以root权限调用adduser,在最后一行加入一行,
auser /user/sbin/adduser nobody,root

*第一列为命令别名,第二列为调用命令所在路径,第三列为php启动用户名(可执行此操作的账户),最后一列可以为系统中任意的一个普通用户*
如果你还想调用其他的命令,可以安装上边的方法再构造,当然,第一列的别名不能相同,如
cpass /user/bin/passwd nobody,root

至此,配置完毕。

三、调用
3.1、super的使用方法为:
super+别名+其他参数(可选)
例:
[root@ossec.cn ~]#super auser test
[root@ossec.cn ~]#super cpass test
更改用户 test 的密码 。
新的 密码:
无效的密码: 它基于字典单词
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。

3.2、php调用super命令:

例:

<?php system(‘super auser test1′); ?>

怎么样,挺简单吧。 ^_^

  1. 高仿奢侈品
    CéLINE(赛琳)
    Paneria(沛纳海)
    客客隆
    KENZO(凯卓)
    Valentino(华伦天奴)
    Vancleefarperl(梵克雅宝)
    Wei信:LoveMeJck

普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress