LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: diyself

用shell 写CGI

[复制链接]
发表于 2006-7-17 13:18:35 | 显示全部楼层
Post by kiron
除了让APACHE以ROOT身份运行及用NOPASSWD的sudo执行用户,
各位还有更好的办法么?
http://www.webmin.com/
这个用WEB管理的工具是用PERL写的,我对PERL不太熟悉
看不出来它是怎么得到超级用户权限来写文件的。
或许还有更聪明的办法。

他运行perl的时候用户是root,执行的时候就是root权限
如果不是以root身份运行的话,我觉得你可以把密码储存起来,运行的时候sudo,输入密码,或者su -c
回复 支持 反对

使用道具 举报

发表于 2006-7-17 22:16:39 | 显示全部楼层
Post by 1ball
他运行perl的时候用户是root,执行的时候就是root权限
如果不是以root身份运行的话,我觉得你可以把密码储存起来,运行的时候sudo,输入密码,或者su -c


原来如此。
明文存密码也让人不太放心。
我采用的办法是这样的:
建一个用户专用于运行apache的用户,禁止它登录,
SUDO设此用户为NOPASSWD。
脚本用SUDO来执行。
此用户不用于安装/拥有任何可执行文件。
========================
好处是不必明文存密码,
坏处是所有的风险在于你的脚本的质量和服务器的配置(上面的其它方法也依然不能避免这一点)。
这是我能所想到的较好的办法了。
回复 支持 反对

使用道具 举报

发表于 2006-7-17 23:18:55 | 显示全部楼层
Post by diyself
cgi 自己作 authorization ?


garychang,你能不能说详细一点,例如说说怎么用ifconfig修改ip地址?

万分感激!

你說的是 remote 的 ip 嗎?
$REMOTE_ADDR 可以看到阿!

Post by kiron

原来如此。
明文存密码也让人不太放心。
我采用的办法是这样的:
建一个用户专用于运行apache的用户,禁止它登录,
SUDO设此用户为NOPASSWD。
脚本用SUDO来执行。
此用户不用于安装/拥有任何可执行文件。

你說的是 httpd.conf 中的
User apache
Group apache
設為 nologin, 再把 sudo 設為 nopasswd 嗎?
我目前是這樣設耶! 當然 security 會 depend on your cgi
回复 支持 反对

使用道具 举报

发表于 2006-7-18 01:47:23 | 显示全部楼层
APACHE部分是这样设
禁止登录,我是把/etc/passwd中的相应entry设为/sbin/nologin,
然后设sudo为NOPASSWD
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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