作者 主題: 關於 Apache , Virtual Host 權限的問題  (閱讀 8043 次)

0 會員 與 1 訪客 正在閱讀本文。

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 於: 2006-08-04 03:42 »
這應該是老問題了,不過我沒找到比較簡單的方式來解決...
在Google 或是問人,大部分都是說用 jail 去作,不過 jail 太麻煩又不好除錯

我想要達到的效果是,指定 Apache 以某個使用者的權限去執行...
為什麼呢?我舉例說明比較快:
假設 Apache 是以 www:www 的權限執行
假設有個使用者叫做user,家目錄在 /home/user , DocumentRoot 在 /home/user/public_html , 其 owner 為 user ,權限為 755
當我在 index.php 裡這麼寫

代碼: [選擇]

<?php
  mkdir
&#40;'test'&#41;;
?>



在瀏覽器執行後得到 Warning: mkdir() [function.mkdir]: Permission denied in /home/user/public_html/index.php on line 2

考慮到安全問題,如果能用user的權限去執行 Apache,我就能把檔案目錄的權限都設成 700 !
所以我就想,如果能在 virtual host 中指定 Apache 執行的權限,應該就可以解決這個問題!

底下是我的思路(考慮條件):
1. 因為要設 Quota ,所以必須是實體用戶?(無論可不可以登入)
2. FTP 上傳時 Owner 是該使用者帳號?(跟 #1 有相依關係)
3. Apache 執行的權限是 www ,是否要更改?

簡單的說,我想達到某些虛擬主機商做出來的效果!

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #1 於: 2006-08-09 13:17 »
剛剛測試過 suPHP 0.5.2,他可以在權限755底下達到我要的效果...
離我希望的700俱樂部還有段距離。

清仔

  • 活潑的大學生
  • ***
  • 文章數: 298
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #2 於: 2006-08-09 14:16 »
引述: "tokimeki"
剛剛測試過 suPHP 0.5.2,他可以在權限755底下達到我要的效果...
離我希望的700俱樂部還有段距離。

我不完全明白你的目的, 但我最近也嘗試用suphp0.6.1, 他可以用該檔案的使用者去行apache, 之後使可以用700

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #3 於: 2006-08-09 14:18 »
引述: "清仔"
引述: "tokimeki"
剛剛測試過 suPHP 0.5.2,他可以在權限755底下達到我要的效果...
離我希望的700俱樂部還有段距離。

我不完全明白你的目的, 但我最近也嘗試用suphp0.6.1, 他可以用該檔案的使用者去行apache, 之後使可以用700

就是你說的那件事:用該檔案的使用者去行apache
可以請你講解一下怎麼作嗎?是否一定要用suphp 0.6.1?
我待會去更新一下我的 port tree 看看...

清仔

  • 活潑的大學生
  • ***
  • 文章數: 298
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #4 於: 2006-08-09 19:11 »
引述: "tokimeki"
引述: "清仔"
引述: "tokimeki"
剛剛測試過 suPHP 0.5.2,他可以在權限755底下達到我要的效果...
離我希望的700俱樂部還有段距離。

我不完全明白你的目的, 但我最近也嘗試用suphp0.6.1, 他可以用該檔案的使用者去行apache, 之後使可以用700

就是你說的那件事:用該檔案的使用者去行apache
可以請你講解一下怎麼作嗎?是否一定要用suphp 0.6.1?
我待會去更新一下我的 port tree 看看...

我一開始寫一個php, 內容是
<?
$shell = "whoami";
exec($shell,$output);
echo "whoami:".$output[0];
?>
在沒有suphp的時候是www, 然後
vi /usr/local/etc/apache2/httpd.conf
suPHP_Engine on
請確定有沒有loadmodule, 不過小弟在安裝suphp時已經自動加入loadmodule
LoadModule suphp_module       libexec/apache2/mod_suphp.so
然後再restart apache, run多一次whoami的php, 應該成功

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #5 於: 2006-08-10 03:31 »
直到剛剛,port tree 裡面的還是0.5.2的版本,不過也是可以用啦
不過我沒辦法用700的權限執行程式,或許必須使用0.6.1才可以吧...
會這麼推測是因為官方網站在0.6.1的release佈告中有一項敘述:
引用

chroot() support was added. In the configuration file, a path can be specified, in which suPHP will chroot() before executing the script.

另外我想請教一下,suPHP 到底是以CGI還是FCGI模式來執行程式的呢?

清仔

  • 活潑的大學生
  • ***
  • 文章數: 298
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #6 於: 2006-08-10 10:59 »
引述: "tokimeki"
直到剛剛,port tree 裡面的還是0.5.2的版本,不過也是可以用啦
不過我沒辦法用700的權限執行程式,或許必須使用0.6.1才可以吧...
會這麼推測是因為官方網站在0.6.1的release佈告中有一項敘述:
引用

chroot() support was added. In the configuration file, a path can be specified, in which suPHP will chroot() before executing the script.

另外我想請教一下,suPHP 到底是以CGI還是FCGI模式來執行程式的呢?

你有無有試過用php看看你的apache用什麼使用者執行?
我最近是裝php5去測試, 不知道是php5還是suphp, 多了個php-cgi

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #7 於: 2006-08-10 11:26 »
引述: "清仔"
引述: "tokimeki"
直到剛剛,port tree 裡面的還是0.5.2的版本,不過也是可以用啦
不過我沒辦法用700的權限執行程式,或許必須使用0.6.1才可以吧...
會這麼推測是因為官方網站在0.6.1的release佈告中有一項敘述:
引用

chroot() support was added. In the configuration file, a path can be specified, in which suPHP will chroot() before executing the script.

另外我想請教一下,suPHP 到底是以CGI還是FCGI模式來執行程式的呢?

你有無有試過用php看看你的apache用什麼使用者執行?
我最近是裝php5去測試, 不知道是php5還是suphp, 多了個php-cgi


我的 apache 應該是 www:www 的身份執行的。
我裝 php5 是用 /usr/port/lang/php5 這裡來 make install 。
在裝的時候三種模式都有裝 libphp5.so, php, php-cgi 都有。
我裝 suphp 是用 /usr/port/www/suphp 這裡來 make install WITHOUT_CHECKPATH=yes WITH_SETID_MODE="owner"。
網路上我有找到這一篇:
http://www.freebsd.org/cgi/query-pr.cgi?pr=94919
不過小弟不敢然嘗試,而且該連結目前下載不到...

會問上面那個問題是因為我在 phpinfo 裡面看到:Server API    CGI/FastCGI
所以不確定到底是哪一個,要不要再裝fcgi,因為我在
http://fastcgi.coremail.cn/index.cn.htm
裡面的 Document 中有提到 suPHP 的部份,感到很疑惑...

tokimeki

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
關於 Apache , Virtual Host 權限的問題
« 回覆 #8 於: 2006-08-19 03:25 »
剛剛測試過 suphp 0.6.1 了,可以裝,但是對於 vhost 會有個奇怪的問題。
那就是在 DocumentRoot 底下的 index.php 無法使用 autoindex ,但是子目錄的話就沒問題,有人知道如何解決嗎?
底下是我的 vhost 設定

代碼: [選擇]

<VirtualHost *:80>
DocumentRoot "/home/user/public_html"
ServerName test.com
ErrorLog /var/log/lost-tech.com-error.log
CustomLog /var/log/lost-tech.com-access.log common
#php_admin_value open_basedir /home/user
</VirtualHost>