2011-07-19 62 views
1

我想一個實現與htacess如下:htaccess的用戶具有不同權限

** **管理用戶

/dir <= has access to directory listing or parent dir 
/dir/subdir-n <= has access to directory listing of any sub-dir 

** ** clientuser

/dir <= DOES NOT have access to directory listing or parent dir (preferably Directory Index that points to a blank index.html file) 
/dir/subdir-n <= has access to directory listing of any sub-dir 

基本上,我們希望我們的管理員能夠使用管理員登錄和我們的個人客戶端查看所有子分區列表,以便只能看到他們的目錄,我們將與他們通信,但都使用相同的登錄名。

回答

1

對於不同的子目錄,這應該可以用不同的htpasswd文件。

對於管理員用戶,您進行登錄:pw對,並且在/dir中,您需要一個來自僅具有admin用戶登錄名的文件的auth用戶:pw。

對於客戶端用戶,您爲該用戶進行登錄:pw對,然後在該目錄的相同.htpasswd文件的新行上追加adminuser登錄名:pw對。

這樣,您的管理員可以查看所有目錄,而客戶端用戶只能查看他們自己的目錄。

爲了澄清,這裏是文件你必須:

/dir 
/subdiruser1 
/subdiruser1/.htaccess 
... 
/.htaccess 
/.htpasswdadmin 
/.htpasswduser1 

在.htpasswdadmin你有一行:

admin:weofj2p8jöeoif2p84

在.htpasswduser1你有兩個行:

user1:we2pr832urp823rpup 
admin:weofj2p8jöeoif2p84 

請注意,您的htpasswd文件可以是任何名稱,但優選首先使用.ht,因爲許多apache配置阻止網絡訪問文件名稱。此外,您不應該像在我的示例中那樣在webroot中訪問您的.htpasswd文件,而是將它們保存在無法從Web訪問的文件夾中。最後一個注意:顯然你會看到這個限制,當需要更改或添加新的管理員密碼時,需要將該登錄名:pw對添加到所有subdir .htpasswd文件。

如果有人有更好的解決方案,我會很好奇。

相關問題