luo118 发表于 2008-05-08 23:11

apache 如何定制一个网站一个用户身份运行

apache 如何定制一个网站一个用户身份运行,对应一个系统目录.
如 加个test.com网站,
系统目录权限为 test   目录为/home/test, 要apache运行是也用test用户运行,

因为我要做虚拟主机,一个目录,一个权限分开,apache 以同的身份访问对应的目录

windows iis 可以做到,但是apache如何做呢?

rhci 发表于 2008-05-09 09:07

什么情况下会导致不安全呢?

raquid 发表于 2008-05-11 13:29

http://httpd.apache.org/docs/2.2/howto/auth.html
楼主看,这是你想要的.
两种方法,一种是在httpd.conf配置认证.另外一种方法是在相应的目录里创建.htaccess.
自己看文档吧...

luo118 发表于 2008-05-13 00:27

谢谢两位, 不过不是我相要的,

现在有个安全问题,我的虚拟主机,有客使用cgi脚本, 发现他的CGI 的脚本,可以超出网站本身目录,
权限都是644权限, 网站目录如(chown test:test   test; chmod 755 test; ) 当他网站有问题在是,所有虚拟主机的客网页都有代码注入了, 分析日习后是写自已呢个网站的某个CGI脚本有问题,给别人利用了,
   所以我想限制test目录,只能在本身目录运行,超出不了任何位置.

luo118 发表于 2008-05-14 21:43

顶上,没有人回:(

kayjess 发表于 2008-05-15 09:22

回复 #5 luo118 的帖子

没听过有这个功能,不过做虚拟主机用Windows吧~~:lol: 这个apache可通过NTFS分区设置权限

vermouth 发表于 2008-05-15 10:51

我记得似乎有用户主页这个概念吧?

kenduest 发表于 2008-05-15 12:38

其實來看你的問題是有點奇怪的。


現在有個安全問題,我的虛擬主機,有客使用cgi腳本, 發現他的CGI 的腳本,可以超出網站本身目錄,
權限都是644權限, 網站目錄如(chown test:test   test; chmod 755 test; ) 當他網站有問題在是,所有虛擬主機的客網頁都有代碼注入了, 分析日習後是寫自已呢個網站的某個CGI腳本有問題,給別人利用了


首先你的權限規劃就是有問題,apache daemon 運作身份本來就不應該與 html page 的身份一樣。

比方 apache daemon 配置:


User apache
Group apache


這是說運作身份,那後續一般 html page 等文件檔 owner/group 不會是 apache 本身可以存取讀寫,而應該是其他身份。其他環境上你設定 vhosts 提供給多人可以存取使用,那不同帳號登入主機使用的身份放入網頁時,也只是提供 apache 身份本身可以讀取就可以了。

若是你這樣規劃,怎麼會有所謂網頁被寫入的問題?

另外一個問題方向,若你要讓不同 vhosts 用不同身份跑 cgi,問題要解決比較好的方式那就是您得放棄使用一般的 prefork 架構,改用 worker 的 apache 即可解決該問題。請參考:

http://httpd.apache.org/docs/2.2/mod/mod_suexec.html#suexecusergroup

其他要簡單解決方式,其實一般傳統的 http://hostname/~userid/cgi-bin/ 的架構時,一般有開 susexec 支援其實跑該 cgi 程式都可以切換到該使用者身份來運作執行,所以在 vhosts 內你要用可以轉兩層,就是用 ProxyPass 方式來處理這類需求。詳細你可以參考 apache manual。

--

[ 本帖最后由 kenduest 于 2008-5-15 12:43 编辑 ]

luo118 发表于 2008-05-29 09:50

原帖由 kenduest 這是說運作身份,那後續一般 html page 等文件檔 owner/group 不會是 apache 本身可以存取讀寫,而應該是其他身份。其他環境上你設定 vhosts 提供給多人可以存取使用,那不同帳號登入主機使用的身份放入網頁時,也只是提供 apache 身份本身可以讀取就可以了。

我本身就是这样, 就是不知道为什么有写的权限,

还是谢谢你,你下面提供的资料非常有用, 问题已经解决,和大家分享一下

<VirtualHost xx. xx. xx.xx>
XXX
XXX
XXX
XXXX
XXXX
SuexecUserGroup test test                #指定虚拟主机使用户和组,运行cgi, 注意和目录权限一样, 这样给注入也是它自已的网站影响不了别人了网站了.
XBitHack off                        #关闭进程包含带执行位的文件
</VirtualHost>

这样问题解决了

freeterman 发表于 2013-01-31 17:14

我现在是这样操作的
但是安装dz论坛的时候就是不行 无法安装
apache用户好像没有写的权限
页: [1] 2
查看完整版本: apache 如何定制一个网站一个用户身份运行