如何將類似功能的登錄設計爲使用suPHP的文件許可權。例如,如果我有一個網站www.example.com
和以下兩個用戶擁有自己的主目錄,每個用戶都有一個php腳本test.php
和一個validateUser.php
腳本,該腳本屬於另一個用戶(root,www-data,apache ...) /home
目錄。與suPHP一起執行登錄
/home/ ├── validateUser.php ├── user1 │ └── test.php └── user2 └── test.php
user1
可以通過訪問www.example.com/user2/test.php
訪問user2's
腳本,反之亦然。相反,我想要的是使用類似mod_rewrite到validateUser.php
的所有傳入請求。但是,這樣做會導致執行所有腳本作爲validateUser.php
的所有者,而不是目標test.php
腳本。
有沒有辦法在suPHP啓動之前調用一個php腳本,然後要麼允許suPHP繼續,要麼完全中止。
編輯這是我搭第二賞金。第一次給我古斯塔夫B/C他給了很好的partial answer。我會提到迄今爲止我所嘗試的,以及爲什麼他們沒有人爲我工作。
1)我嘗試使用mod_rewrite將URL重定向到validateUser.php
,以登錄用戶,或調用他們想調用的任何腳本。問題是,我已經設置了我的虛擬主機,以便每個用戶都有自己的虛擬站點(例如,如果這是一種糟糕的設計方法,請隨意粗暴地指出),即www.user1.example.com
,www.user2.example.com
。因此,雖然OS看到如上的文件結構,網絡,根目錄被設置爲這樣
VirtualHost = www.user1.example.com
├── validateUser.php
└── test.php
VirtualHost = www.user2.example.com
├── validateUser.php
└── test.php
當然,我剛搬進的validateUser.php
複製到每個用戶的目錄。問題是,現在用戶可以刪除該文件並在其中放入他們想要的任何內容,例如根本不需要登錄。解決這個問題的方法是使主文件夾變得粘滯(不是我曾經推薦過的主文件夾),並使root99擁有validateUser.php
。但現在它會執行AS根,因爲這是suPHP。那是我放棄的地方。
2)我可以使用古斯塔夫的mod_auth
建議,但我不喜歡它需要密碼(像老學校的網站)。
3)如果我可以在虛擬主機之間重定向,我已經考慮過1)的變體。例如,重組的虛擬主機像這樣
VirtualHost = www.user1.example.com
└── test.php
VirtualHost = www.user2.example.com
└── test.php
VirtualHost = www.admin.example.com
└── validateUser.php
然後使用mod_rewrite從用戶的所有業務重定向到www.admin.example.com/validateUser.php
,並且如果用戶已登錄(或如果登錄是成功的)用戶被重定向回他們最初嘗試登錄的網站。如果可能的話,這樣做的好處是隻有當用戶被引導回自己的虛擬主機時,suPHP纔會啓動。
我相當有信心我的問題沒有解決方案http://stackoverflow.com/a/9561335/654789 – puk