超越 TDB

根据您的配置,用户帐户可存储在各种不同的位置,两种工具为您提供一种命令行界面,同时也考虑到后端通信。例如,您可以使用相同的命令,即使用户数据存储在 LDAP 中而不是 TDB 文件中。

使用 smbpasswd

smbpasswd 实用工具可添加并删除用户或计算机帐户并变更密码。其最常用于执行后面的任务,更改当前用户的密码,或者根本更改其他用户的密码。

在后面的文章中,您将更深入地了解有关不同密码后端的信息,但是在较高的等级上,Samba 密码可以用几种不同的方式进行存储,这取决于 Samba 的制作时间和您正在集成的系统。smbpasswd 和 pdbedit(下面将进行描述)可以针对任何后端(即使它不是 TDB)执行其操作。

Microsoft 客户端以 Microsoft 专用的哈希而不是纯文本或 UNIX 密码哈希形式在网络中传递密码。这意味着无法采用 Microsoft 密码哈希并确定该密码是否与存储在 UNIX 密码数据库中的密码相同。因此,Samba 必须为 Microsoft 哈希保留单独的密码数据库;这就被称为密码后台。

使用 pdbedit

pdbedit 管理 Samba 用户数据库和帐户策略。它可以做任何事情,从而 smbpasswd 可以增加管理策略并在不同后台之间迁移帐户。

要显示数据库中的所有用户,请运行 pdbedit -L。通过传递 -v 标记,您可以获得有关用户的更多详细资料,如清单 7 所示。

清单 7. 用户的详细清单

[root@bob tmp]# pdbedit -L -v
---------------
Unix username: sean
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2287037134-1443008385-640796334-1001
Primary Group SID: S-1-5-21-2287037134-1443008385-640796334-513
Full Name: Sean
Home Directory: \\bob\sean
HomeDir Drive:
Logon Script:
Profile Path: \\bob\sean\profile
Domain: BOB
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Mon, 24 May 2010 21:28:49 CDT
Password can change: Mon, 24 May 2010 21:28:49 CDT
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

您必须作为 root 用户登录,pdbedit 命令才能工作。您可以编辑各种用户设置,例如最后登录时间、密码变更以及主目录,就像您正在使用 Microsoft 实用工具一样。

每一个用户参数都有自己的命令行选项,为了获得细节,请查看 pdbedit(8) 联机帮助页。

同样重要的是,要注意 Samba 用类似的方式处理计算机帐户和用户帐户。清单 8 显示了配置为域控制器的 Samba 服务器的密码数据库。

清单 8. 密码数据库,包括计算机帐户

[root@sergeant ~]# pdbedit -L
root:0:root
mythupstairs$:4294967295:MYTHUPSTAIRS
BOB$:1043:Machine
sean:1002:Sean,,,
sergeant$:4294967295:Machine

以美元符号 ($) 结束的名称都是计算机帐户,用于向域验证计算机。相应的秘密将存储在远程服务器中的 secrets.tdb 上和域控制器中的 passdb.tdb 上。


相关内容