pdbedit — 管理 SAM 数据库(Samba 用户数据库)
梗概
pdbedit
[-L|–list] [-v|–verbose] [-w|–smbpasswd-style] [-u|–user=USER] [-N|–account-desc=STRING] [-f|–fullname=STRING] [-h|–homedir=STRING] [-D|–drive=STRING] [-S|–script=STRING] [-p|–profile=STRING] [-I|–domain=STRING] [-U|–user SID=STRING] [-M|–machine SID=STRING] [-a|–create] [-r|–modify] [-m|–machine] [-x|–delete] [-b|–backend=STRING] [-i|–import=STRING] [-e|–export=STRING] [-g|–group] [-y|–policies] [–policies-reset] [-P|–account-policy=STRING] [-C|–value=LONG] [-c|–account-control=STRING] [–force-initialized-passwords] [-z|–bad-password-count-reset] [-Z|–logon-hours-reset] [–time-format=STRING] [-t|–password-from-stdin] [-K|–kickoff-time=STRING] [–set-nt-hash=STRING] [-?|–help] [–usage] [-d|–debuglevel=DEBUGLEVEL] [–debug-stdout] [–configfile=CONFIGFILE] [–option=name=value] [-l|–log-basename=LOGFILEBASE] [–leak-report] [–leak-report-full]
描述
该工具是 samba(7) 套件的一部分。
pdbedit 程序用于管理存储在 sam 数据库中的用户帐户,并且只能由 root 运行。
pdbedit 工具使用 passdb 模块化接口,独立于所使用的用户数据库类型(目前有 smbpasswd、ldap、nis+ 和 tdb,并且可以在不更改工具的情况下添加更多)。
使用 pdbedit 有五种主要方法:添加用户帐户、删除用户帐户、修改用户帐户、列出用户帐户、导入用户帐户。
选项
-L|--list
此选项列出用户数据库中存在的所有用户帐户。 此选项打印由 ‘:’ 字符分隔的用户/uid 对列表。
# pdbedit -L
sorce:500:Simo Sorce
samba:45:Test User
-v|--verbose
此选项启用详细列表格式。 它使 pdbedit 列出数据库中的用户,以描述性格式打印出帐户字段。 与 -w 一起使用还显示密码哈希。
# pdbedit -L -v
---------------
username: sorce
user ID/Group: 500/500
user RID/GRID: 2000/2001
Full Name: Simo Sorce
Home Directory: \\BERSERKER\sorce
HomeDir Drive: H:
Logon Script: \\BERSERKER\netlogon\sorce.bat
Profile Path: \\BERSERKER\profile
---------------
username: samba
user ID/Group: 45/45
user RID/GRID: 1090/1091
Full Name: Test User
Home Directory: \\BERSERKER\samba
HomeDir Drive:
Logon Script:
Profile Path: \\BERSERKER\profile
-w|--smbpasswd-style
此选项设置“smbpasswd”列表格式。 它将使 pdbedit 列出数据库中的用户,以与 smbpasswd
文件格式兼容的格式打印出帐户字段。 (有关详细信息,请参阅 smbpasswd(5))。 相反,与 (-v) 一起使用会在详细输出中显示密码哈希。
# pdbedit -L -w
sorce:500:508818B733CE64BEAAD3B435B51404EE:
D2A2418EFC466A8A0F6B1DBB5C3DB80C:
[UX ]:LCT-00000000:
samba:45:0F2B255F7B67A7A9AAD3B435B51404EE:
BC281CE3F53B6A5146629CD4751D3490:
[UX ]:LCT-3BFA1E8D:
-u|--user username
此选项指定用于请求的操作(列出、添加、删除)的用户名。 在添加、删除和修改操作中是必需的,在列表操作中是可选的。
-f|--fullname fullname
此选项可在添加或修改用户帐户时使用。 它将指定用户的全名。
-f "Simo Sorce"
-h|--homedir homedir
在添加或修改用户帐户时可以使用此选项。 它将指定用户的主目录网络路径。
-h "\\\\BERSERKER\\sorce"
-D|--drive drive
在添加或修改用户帐户时可以使用此选项。 它将指定用于映射主目录的 Windows 驱动器号。
-D "H:"
-S|--script script
在添加或修改用户帐户时可以使用此选项。 它将指定用户的登录脚本路径。
-S "\\\\BERSERKER\\netlogon\\sorce.bat"
--set-nt-hash
修改用户帐户时可以使用此选项。 它将使用以十六进制字符串形式给出的 nt-hash 值设置用户的密码。 用于同步密码。
--set-nt-hash 8846F7EAEE8FB117AD06BDD830B7586C
-p|--profile profile
在添加或修改用户帐户时可以使用此选项。 它将指定用户的配置文件目录。
-p "\\\\BERSERKER\\netlogon"
-M|'--machine SID' SID|rid
在添加或修改计算机帐户时可以使用此选项。 它将指定机器的新主要组 SID(安全标识符)或 rid。
-M S-1-5-21-2447931902-1787058256-3961074038-1201
-U|'--user SID' SID|rid
在添加或修改用户帐户时可以使用此选项。 它将指定用户的新 SID(安全标识符)或rid。
# -U S-1-5-21-2447931902-1787058256-3961074038-5004
# '--user SID' S-1-5-21-2447931902-1787058256-3961074038-5004
# -U 5004
# '--user SID' 5004
-c|--account-control account-control
在添加或修改用户帐户时可以使用此选项。 它将指定用户的帐户控制属性。 下面列出了可能的标志。
- N: 无需密码
- D: 账户已禁用
- H: 要求主目录
- T: 其他账户的临时副本
- U: 普通用户账户
- M: MNS 登录用户帐户
- W: 工作站信任帐户
- S: 服务器信任帐户
- L: 自动锁定
- X: 密码不过期
- I: 域信任帐户
-c "[X ]"
-K|--kickoff-time
此选项用于修改某个用户的启动时间。 使用“never”作为参数将启动时间设置为无限制。
pdbedit -K never user
-a|--create
此选项用于将用户添加到数据库中。 此命令需要使用 -u 开关指定的用户名。 添加新用户时,pdbedit 还会询问要使用的密码。
# pdbedit -a -u sorce
new password:
retype new password
注意
如果已设置
unix password sync
,pdbedit 不会调用 unix 密码同步脚本。 它只更新 Samba 用户数据库中的数据。如果希望添加用户并立即同步密码,请使用
smbpasswd
的-a
选项。
-t|--password-from-stdin
此选项使 pdbedit 从标准输入读取密码,而不是从 /dev/tty 读取密码(就像 passwd
(1) 程序所做的那样)。 密码必须提交两次,每次都以换行符结束。
-r|--modify
此选项用于修改数据库中的现有用户。 此命令需要使用 -u 开关指定的用户名。 可以指定其他选项来修改指定用户的属性。 保留此标志是为了向后兼容,但不再需要指定它。
-m|--machine
此选项只能与 -a
选项一起使用。 它将使 pdbedit 添加机器信任帐户而不是用户帐户(-u 用户名将提供机器名称)。
# pdbedit -a -m -u w2k-wks
-x|--delete
此选项使 pdbedit 从数据库中删除一个帐户。 它需要使用 -u 开关指定的用户名。
# pdbedit -x -u bob
-i|--import passdb-backend
使用与 smb.conf 中指定的不同的 passdb 后端来检索用户。 可用于将数据导入本地用户数据库。
此选项将简化从一个 passdb 后端到另一个后端的迁移。
# pdbedit -i smbpasswd:/etc/smbpasswd.old
-e|--export passdb-backend
将所有当前可用的用户导出到指定的密码数据库后端。
此选项将简化从一个 passdb 后端迁移到另一个后端,并将简化备份。
# pdbedit -e smbpasswd:/root/samba-users.backup
-g|--group
如果指定 -g
,则 -i in-backend -e out-backend
应用于组映射而不是用户数据库。
此选项将简化从一个 passdb 后端迁移到另一个后端,并将简化备份。
-b|--backend passdb-backend
使用不同的默认 passdb 后端。
# pdbedit -b xml:/root/pdb-backup.xml -l
-P|--account-policy account-policy
显示帐户策略。
有效策略包括:最短密码使用时间、重置计数分钟数、断开连接时间、用户必须登录才能更改密码、密码历史记录、锁定持续时间、最短密码长度、最长密码使用时间和错误锁定尝试。
# pdbedit -P "bad lockout attempt"
account policy value for bad lockout attempt is 0
-C|--value account-policy-value
将帐户策略设置为指定值。 此选项只能与 -P
选项一起使用。
# pdbedit -P "bad lockout attempt" -C 3
account policy value for bad lockout attempt was 0
account policy value for bad lockout attempt is now 3
-y|--policies
如果您指定 -y
,则-i in-backend -e out-backend
适用于帐户策略而不是用户数据库。
此选项将允许将帐户策略从其默认 tdb-store 迁移到 passdb 后端,例如 LDAP 目录服务器。
# pdbedit -y -i tdbsam: -e ldapsam:ldap://my.ldap.host
--force-initialized-passwords
此选项强制所有用户在下次登录时更改密码。
-N|--account-desc description
在添加或修改用户帐户时可以使用此选项。 它将指定用户的描述字段。
-N "test description"
-Z|--logon-hours-reset
在添加或修改用户帐户时可以使用此选项。 它将重置用户允许的登录时间。 用户可以在之后的任何时间登录
-Z
-z|--bad-password-count-reset
在添加或修改用户帐户时可以使用此选项。 它将从指定用户重置存储的错误登录计数器。
-z
--policies-reset
此选项可用于将为域存储的一般密码策略重置为其默认值。
--policies-reset
-I|--domain
在添加或修改用户帐户时可以使用此选项。 它将指定用户的域字段。
-I "MYDOMAIN"
--time-format
当前未使用此选项。
d|--debuglevel=DEBUGLEVEL
level
是从 0 到 10 的整数。如果未指定此参数,则客户端应用程序的默认值为 1。
此值越高,将在日志文件中记录有关服务器活动的更多详细信息。 在级别 0,只会记录严重错误和严重警告。 级别 1 是日常运行的合理级别 - 它会生成少量有关已执行操作的信息。
高于 1 的级别将生成大量日志数据,仅应在调查问题时使用。 3 级以上的设计仅供开发人员使用,并生成大量日志数据,其中大部分非常神秘。
请注意,在此处指定此参数将覆盖 smb.conf 文件中的log level
参数。
--debug-stdou
这会将调试输出重定向到 STDOUT。 默认情况下,所有客户端都登录到 STDERR。
--configfile=<configuration file>
指定的文件包含客户端所需的配置详细信息。 此文件中的信息可以是客户端和服务器的通用信息,也可以仅提供客户端特定的类似选项,例如客户端 smb 加密client smb encryp。 有关详细信息,请参阅 smb.conf。 默认配置文件名是在编译时确定的。
--option=<name>=<value>
从命令行将 smb.conf(5) 选项“”设置为值“”。 这会覆盖从配置文件中读取的编译默认值和选项。 如果名称或值包含空格,请将整个 --option=name=value 括在引号中。
-l|--log-basename=logdirectory
日志/调试文件的基本目录名称。 将附加扩展名“.progname”
(例如 log.smbclient、log.smbd 等…)。 客户端永远不会删除日志文件。
--leak-report
在退出时启用talloc 泄漏报告。
--leak-report-full
在退出时启用完整的talloc 泄漏报告。