Apache的认证体系很不错,但是他并不是和操作系统天然结合的。如果想要让Apache使用操作系统的用户进行认证,可以使用 mod_auth_shadow 或者 mod_authnz_external 来进行。
我使用的是 mod_auth_shadow,因为简单嘛。
下载之后自己进行编译,会有两个有用的文件,mod_auth_shadow.so 和 validate 。
配置Apache,我使用的是Apache 2.2
- 加载module,
LoadModule auth_shadow_module /path-to/mod_auth_shadow.so - 配置 VirtualHost
添加如下几行
AuthName what-ever-you-like
AuthShadow on
AuthType Basic
require valid-user - 还可以使用 require user/group
require user user1 user2
require group group1 group2
这样你就可以使用了。
注意,
其中的 validate 是进行真正认证的程序, mod_auth_shadow 是会通过 pipe 和 validate 进行交互的。 validate 的存放位置必须是 /usr/local/sbin/ 并且,由于 Apache 运行之后会切换成为其他的用户,所以你还要给 validate setuid 为 root。
chmod u+s validate
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.