仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 498|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 来讲讲:php实行linux下令

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:12:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:Linux同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。
php实行linux体系下令的几个函数:
system函数
申明:实行内部步伐并显现输入材料。
语法:stringsystem(stringcommand,int[return_var]);
前往值:字符串

具体先容:
本函数就像是C语中的函数system(),用来实行指令,并输入了局。如果return_var参数存在,则实行command以后的形态会填进return_var中。一样值得注重的是若必要处置用户输出的材料,而又要避免用户耍把戏破解体系,则可使用EscapeShellCmd()。若PHP以模块式的实行,本函数会在每行输入后主动更新Web办事器的输入缓冲暂存区。若必要完全的前往字符串,且不想经由不用要的别的两头的输入界面,可使用PassThru()。

实例代码:
<?php
$last_line=system(ls,$retval);
echoLastlineoftheoutput:.$last_line;
echo<hr/>Returnvalue:.$retval;
?>


exec函数
申明:实行内部步伐。
语法:stringexec(stringcommand,string[array],int[return_var]);
前往值:字符串

具体先容:
本函数实行输出command的内部步伐或内部指令。它的前往字符串只是内部步伐实行后前往的最初一行;若必要完全的前往字符串,可使用PassThru()这个函数。

如果参数array存在,command会将array加到参数中实行,若不欲array被处置,能够在实行exec()之前呼唤unset()。如果return_var跟array二个参数都存在,则实行command以后的形态会填进return_var中。
值得注重的是若必要处置利用者输出的材料,而又要避免利用者耍把戏破解体系,则可使用EscapeShellCmd()。
实例代码:
<?php
echoexec(whoami);
?>

popen函数
申明:翻开文件。
语法:intpopen(stringcommand,stringmode);
前往值:整数

具体先容:
本函数实行指令开档,而该文件是用管道体例处置的文件。用本函数翻开的文件只能是单向的(只能读或只能写),并且必定要用pclose()封闭。在文件操纵上可以使用fgets()、fgetss()与fputs()。如果开档产生毛病,前往false值。

实例代码:
<?php
$fp=popen("/bin/ls","r");
?>

可是实行的下令要触及权限,举个例子:利用php实行"servicenetworkrestart"下令,重启收集。apache是以一个一样平常用户实行的,我盘算机利用apache用户,基本没有实行这个下令的权限。
办理举措:
1、绕开这个限定:
起首写个c步伐,比方/usr/local/a.c
#include<stdlib.h>
main()
{
uid_tuid,euid;

uid=getuid();
euid=geteuid();

if(setreuid(euid,uid))
perror("setreuid");

system("servicenetworkrestart");
}
编译文件,
gcca.c-oa

这时候会在以后目次下天生步伐a
步伐的属主chmodu+s./a。
apache的uid为48。挪用setreuid后将无效用户id和实践用户id交换了。(必需在chmodu+s失效的情形下)使apache以后的uid为0如许就可以实行root下令了。

php步伐挪用a:
<?php
functionRestartNetwork(){
system("/usr/local/a");
}
RestartNetwork();
?>


2、编纂/etc/sudoers文件,大概利用visudo下令
Host_AliasSERVER=localhost,你的主机名
User_AliasUSERLIST=apache用户名
Cmnd_AliasCOMMANDLIST=/sbin/service#增加想让apache用户可使用的下令

#Defaultsrequiretty
......
修正完成后,保留/etc/sudoers只能是0440权限
然后,php就能够利用service下令
<?php
system("sudoservicenetworkrestart");
?>小知识:RHEL是很多大型企业采用的操作系统,但需要向RedHat购买使用权,有偿享受技术支持、版本升级等,所以推荐大家使用CentOS。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-17 07:25:53 来自手机 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-26 14:02:30 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
爱飞 该用户已被删除
地板
发表于 2015-2-10 15:20:48 | 只看该作者
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-3-1 15:30:01 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-10 22:47:06 | 只看该作者
安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
admin 该用户已被删除
7#
发表于 2015-3-17 17:49:13 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
小魔女 该用户已被删除
8#
发表于 2015-3-24 21:37:36 | 只看该作者
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表