2011年7月21日

Apache Web 網頁使用 Linux 系統帳號作權限認證

原本是要採用 mod_auth_pam,但是他的版本太舊了,只能支援 Apachehttp://www.blogger.com/img/blank.gif v1.3 跟 2.0,所以我們改採用 mod_auth_shadow 來做
1. 先下載 mod_auth_shadow-2.3 下來
2. 解壓縮後,切換成 root 然後進入目錄執行 make all
3. make install
4. 檢查 /etc/httpd/conf/httpd.conf 是不是有多一行 LoadModule auth_shadow_module /usr/lib64/httpd/modules/mod_auth_shadow.so (我是用CentOS 64bits 所以會在 lib64)
5. 檢查在 <Directory "/var/www/html"> 裡面有沒有
AllowOverride AuthConfig
Order allow,deny
Allow from all
6. chmod 400 /etc/shadow
7. chmod 4755 /usr/local/sbin/validate (新增 owner 的 suid 這樣 apache 才能去讀 /etc/shadow)
8. service httpd restart
9. 設定 /var/www/html/.htaccess 內容如下
AuthShadow on
AuthType Basic
AuthName "Input username and password"
require valid-user
10. 開啟瀏覽器測試,輸入使用者在 Linux 系統上的帳密,就可以登入受管控的網頁了!

P.S. mod_auth_shadow 也支援 require user 或 require group 等強大的授權功能

沒有留言: