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