仓酷云

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

[学习教程] PHP网页设计在PHP中以root身份运转内部号令[转自li...

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:24:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧。   Hunte 2001年4月15日

在PHP中运转只要root用户才可以运转的内部法式,一向是个老成绩,用惯例的举措很难完成。这是由于普通情形下,PHP是作为APACHE的一个模块的,也就是说,PHP是APACHE的一局部,而APACHE除suEXEC机制外,是不克不及以分歧的用户ID来履行号令的,但suEXEC机制只能CGI无效。

网上已经有一篇文章,说用挪用"su - -c COMMAND"可以完成,但经由屡次实验,发明不可,由于su号令必需在STDIN上输出root的暗码。

怎样办?用惯例的办法难以见效,只能再想其它的办法了。胜利的关头在于能有一个可以切换用户ID但又可以在号令上输出暗码(或不必输出暗码)的东西。有如许的东西吗?有,它就是super。

上面就详细说说若何来做?

要注重的是,装置和设置装备摆设super,都要以root身份来停止。

第一步,切换到root下

第二步,装置super
先到ftp://ftp.mdtsoft.com/pub/super下载super-3.14.0-1.i386.rpm。这是一个RPM文件,其它包含了两个东西:setuid和super,和它们的文档和man手册。用上面的号令将它装置到体系中:
% rpm -Uvh super-3.14.0-1.i386.rpm
你还可以用这个号令来检查这个RPM中的文件:
% rpm -qpl super-3.14.0-1.i386.rpm
从了局可以看到,两个东西都将被装置到/bin目次下。

第三步,设置装备摆设super
super的设置装备摆设文件是/etc/super.tab。这是一个文本文件,格局也对照庞杂。不外,咱们这里只需很复杂的加上几行就能够了。至于具体的申明,可以经由过程man super.tab来检查。
假定运转Apache的用户是nobody,咱们欲经由过程super来增添体系用户(挪用useradd号令),那末咱们只需在super.tab文件中到场以下这行:
auser /sbin/useradd nobody,hunte
第一段是super可以辨认的号令的别号;第二段是该别号所对应的体系号令的全途径;第三段是可以运转该号令的用户列表,用逗号分隔。这里除nobody外,还一个叫hunte的通俗用户,是用于上面的测试。固然,你应当用你体系中有的恣意一个通俗用户。
至此,super的设置装备摆设就算好了。

第四步,测试
以第三步中指定的非nobody用户登录,运转:
% /bin/super auser testuser
假如后面的设置装备摆设没甚么毛病的话,用户testuser应当是胜利地创立了。可以用:
% cat /etc/passwd | grep testuser
号令来验证一下。

第五步,在PHP中挪用该号令
上面是PHP代码:
<?
if ($username)
{
//应当反省新用户是不是已存在
echo '正在创立用户<$username>...';
system(escapeshellcmd("/bin/super auser $username"));
}
?>
利用super,使得在PHP中以root身份运转内部号令不再是难事。碰运气吧。
测试情况:RedHat Linux 7.0 (Kernel 2.4.3) + Apache 1.3.9 + PHP 4.0.4pl1

chpasswd.cgi是一个修正linux用户暗码的cgi法式,填补更改暗码需求两次输出暗码的缺点  学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。
谁可相欹 该用户已被删除
沙发
发表于 2015-2-4 13:01:48 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
因胸联盟 该用户已被删除
板凳
发表于 2015-2-4 20:32:01 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
精灵巫婆 该用户已被删除
地板
发表于 2015-2-10 07:03:45 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
透明 该用户已被删除
5#
发表于 2015-2-11 10:19:23 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
莫相离 该用户已被删除
6#
发表于 2015-2-26 10:20:42 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
海妖 该用户已被删除
7#
发表于 2015-3-2 01:57:21 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
再见西城 该用户已被删除
8#
发表于 2015-3-5 14:48:15 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
兰色精灵 该用户已被删除
9#
发表于 2015-3-8 17:12:56 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
变相怪杰 该用户已被删除
10#
发表于 2015-3-16 07:04:05 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
乐观 该用户已被删除
11#
发表于 2015-3-20 06:42:00 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
柔情似水 该用户已被删除
12#
发表于 2015-3-22 18:11:47 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
小妖女 该用户已被删除
13#
发表于 2015-3-23 14:36:48 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
老尸 该用户已被删除
14#
发表于 2015-3-26 10:52:31 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
蒙在股里 该用户已被删除
15#
发表于 2015-3-27 03:43:16 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
再现理想 该用户已被删除
16#
发表于 2015-4-4 12:14:29 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
只想知道 该用户已被删除
17#
发表于 2015-4-14 06:17:30 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
山那边是海 该用户已被删除
18#
发表于 2015-4-16 11:09:36 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
19#
发表于 2015-6-18 07:31:42 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
爱飞 该用户已被删除
20#
发表于 2015-6-23 18:50:57 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 21:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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