操作
这是一个关于我如何在我的 lighty 系统上设置基本认证的非全面示例。
- 包含 mod_auth 模块和实现认证后端的 mod_authn* 模块。(例如,mod_authn_file 实现了 htdigest)
server.modules += ( "mod_auth", "mod_authn_file" )
- 设置你想要使用的后端。我有
auth.backend = "htdigest" auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd.user"
- 为了保护子目录“admin”,将其领域设置为“Admin Realm”并只允许名为“firstadmin”和“secondadmin”的用户,你可以这样说
auth.require = ( "/admin" => ( "method" => "basic", "realm" => "Admin Realm", "require" => "user=firstadmin|user=secondadmin" ) )
- 如果你希望允许该领域中任何拥有有效密码的用户,你可以将 require 设置的值设为“valid-user”。
- 现在你必须生成要放入 lighttpd.user 文件的行。这是我用来输出相应行格式的脚本
#!/usr/bin/perl print "User: "; $user = <>; chomp $user; print "Realm: "; $realm = <>; chomp $realm; use Term::ReadKey; { ReadMode('noecho'); print "Password: "; $password = ReadLine(0); chomp $password; print "\nPassword again: "; $password2 = ReadLine(0); chomp $password2; ReadMode('normal'); print "\n"; if($password ne $password2) { print "Passwords don't match\n"; redo; } } print "$user:$realm:"; open(MD5, "|md5sum | cut -b -32") or die; print MD5 "$user:$realm:$password"; close(MD5);
- 不要忘记领域名称很重要。你在创建用户密码行时使用的领域名称,必须与 auth.require 块中使用的领域名称保持一致。这会成为哈希的一部分,并且必须匹配!
- 然后只需将该文本添加到 lighttpd.user 文件中。