免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1912 | 回复: 4
打印 上一主题 下一主题

这个脚本的做用是什么 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-16 17:41 |只看该作者 |倒序浏览
脚本名字:phpsuexec.sh 内容如下
#!/bin/sh
### Username: admin
export MUID=1008
export GID=1008
       export PHPRC=/home/httpd/honghaijituan.com
export TARGET=/usr/bin/php-cgi
export NON_RESIDENT=1
exec lxsuexec $*


web服务器是lighttpd
注意到,php-cgi进程运行的时候是以admin用户身份,这个脚本是不是起的这个作用?
在网站的lighttpd配置文件有这么句话:
cgi.assign = ( ".php" => "/home/httpd/honghaijituan.com/phpsuexec.sh"
----------------------------------------

论坛徽章:
0
2 [报告]
发表于 2009-08-16 18:35 |只看该作者
export是定义环境变量的;

exec命令是这么解释的:
    shell的内建命令exec很有意思,它将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exec命令放到一个shell脚本里面,用主脚本调用这个脚本,调用点处可以用bash a.sh,(a.sh就是存放该命令的脚本),这样会为a.sh建立一个sub shell去执行,当执行到exec后,该子脚本进程就被替换成了相应的exec的命令。
    source命令或者".",不会为脚本新建shell,而只是将脚本包含的命令在当前shell执行。
    不过,有例外哦,当exec命令来对文件描述符操作的时候,就不会替换shell,而且操作完成后,还会继续执行接下来的命令。
    exec 3<&0
    这个命令就是将操作符3也指向标准输入。

php-cgi进程运行的时候是以admin用户身份,这个脚本是不是起的这个作用?
不像啊。但是具体是什么我也不清楚。

论坛徽章:
0
3 [报告]
发表于 2009-08-16 19:25 |只看该作者
谢谢

论坛徽章:
0
4 [报告]
发表于 2009-08-16 20:19 |只看该作者
exec 相当于 "."

论坛徽章:
0
5 [报告]
发表于 2009-08-25 21:03 |只看该作者

回复 #2 marsaber 的帖子

一般做交互用的程序的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP