操作
这是一个关于我如何在我的 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 文件中。