项目

通用

个人资料

操作

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

gstrauss8 年多前 更新 · 4 次修订