安裝 Mod_Auth_External
apxs -c mod_authnz_external.c
apxs -i -a mod_authnz_external.la
安裝 pwauth
編輯 config.h 裡的 #define SERVER_UIDS, 將 Apache 執行者的 UID 加入,
例如: #define SERVER_UIDS 72
make
chmod 4755 pwauth (pwauth 需 setuid root, 使能讀取 /etc/shadow)
mv pwauth /usr/sbin
在 httpd.conf 加入
LoadModule authnz_external_module modules/mod_authnz_external.so
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
建立 /etc/pam.d/pwauth
內容
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_pwdb.so
如此 Apache 的認證就可以用系統帳號了, 不需用 htpasswd 建立
.htaccess 內容
AuthType Basic
AuthName Login
AuthBasicProvider external
AuthExternal pwauth
GroupExternal unixgroup
require valid-user
ref. HOWTO PAM authentication with Apache 2.2 and mod authnz external - Gentoo Linux Wiki
mod_auth_pam 此專案已不再開發與維護了, 不建議使用.
Leave a comment