一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

linux下php以root权限执行命令

时间:2015-06-07 编辑:简简单单 来源:一聚教程网


最近由于要做一个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命令:

例:

热门栏目