3.20. 经常使用 Samba 命令行工具
本章论述了使用 Samba 服务器时经常使用的命令。
3.20.1. 使用 net ads join 和 net rpc join 命令 复制链接链接已复制到粘贴板!
使用 net
工具的 join
子命令,您可以将 Samba 加入到 AD 或 NT4 域。要加入域,您必须手动创建 /etc/samba/smb.conf
文件,并有选择地更新其他配置,如 PAM。
红帽建议使用 realm
工具来加入域。realm
工具自动更新所有涉及的配置文件。
流程
使用以下设置手动创建
/etc/samba/smb.conf
文件:对于 AD 域成员:
[global] workgroup = domain_name security = ads passdb backend = tdbsam realm = AD_REALM
[global] workgroup = domain_name security = ads passdb backend = tdbsam realm = AD_REALM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 NT4 域成员:
[global] workgroup = domain_name security = user passdb backend = tdbsam
[global] workgroup = domain_name security = user passdb backend = tdbsam
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
为
*
默认域和要加入到/etc/samba/smb.conf
文件中[global
] 部分的域添加 ID 映射配置。 验证
/etc/samba/smb.conf
文件:testparm
# testparm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以域管理员身份加入域:
加入 AD 域:
net ads join -U "DOMAIN\administrator"
# net ads join -U "DOMAIN\administrator"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要加入 NT4 域:
net rpc join -U "DOMAIN\administrator"
# net rpc join -U "DOMAIN\administrator"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将
winbind
源追加到/etc/nsswitch.conf
文件中的passwd
和group
数据库条目中:passwd: files winbind group: files winbind
passwd: files winbind group: files winbind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用并启动
winbind
服务:systemctl enable --now winbind
# systemctl enable --now winbind
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:使用
authselect
工具配置 PAM。详情请查看您系统上的
authselect (8)
手册页。可选:对于 AD 环境,请配置 Kerberos 客户端。
详情请查看您的 Kerberos 客户端文档。
3.20.2. 使用 net rpc right 命令 复制链接链接已复制到粘贴板!
在 Windows 中,您可以为帐户和组分配特权来执行特殊操作,如对共享设置 ACL 或上传打印机驱动程序。在 Samba 服务器上,您可以使用 net rpc permissions
命令来管理特权。
列出您可以设置的权限
若要列出所有可用的特权及其所有者,可使用 net rpc permissions list
命令。例如:
授予权限
若要为帐户或组赋予特权,可使用 net rpc rights grant
命令。
例如,将SePrintOperatorPrivilege
特权赋予 DOMAIN\printadmin
组 :
net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully granted rights.
撤销权限
若要从帐户或组撤销特权,可使用 net rpc rights revoke
命令。
例如,要对DOMAIN\printadmin
组撤销 SePrintOperatorPrivilege
特权:
net rpc rights remoke "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
# net rpc rights remoke "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully revoked rights.
3.20.4. 使用 net user 命令 复制链接链接已复制到粘贴板!
net user
命令允许您在 AD DC 或 NT4 PDC 中执行以下操作:
- 列出所有用户帐户
- 添加用户
- 删除用户
只有在列出域用户帐户时,才需要指定连接方法,如 AD 域的ads
或 NT4 域的rpc
。其他用户相关的子命令可以自动探测连接方法。
将 -U user_name
参数传给命令,以指定允许执行所请求的操作的用户。
列出域用户帐户
列出 AD 域中的所有用户:
net ads user -U "DOMAIN\administrator"
# net ads user -U "DOMAIN\administrator"
列出 NT4 域中的所有用户:
net rpc user -U "DOMAIN\administrator"
# net rpc user -U "DOMAIN\administrator"
在域中添加用户帐户
在 Samba 域成员中,您可以使用 net user add
命令将用户帐户添加到域。
例如,将 user
账户添加到域:
添加帐户:
net user add user password -U "DOMAIN\administrator"
# net user add user password -U "DOMAIN\administrator" User user added
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:使用远程过程调用(RPC) shell 来启用 AD DC 或 NT4 PDC 上的帐户。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
从域中删除用户帐户
对于 Samba 域成员,您可以使用 net user delete
命令从域中删除用户帐户。
例如,从域中删除 user
账户:
net user delete user -U "DOMAIN\administrator"
# net user delete user -U "DOMAIN\administrator"
User user deleted
3.20.5. 使用 rpcclient 工具 复制链接链接已复制到粘贴板!
The rpcclient
工具可让您在本地或远程 SMB 服务器上手动执行客户端 Microsoft 远程过程调用(MS-RPC)功能。但是,大部分特性都已集成到 Samba 提供的单独工具中。使用 rpcclient
只用于测试 MS-PRC 功能。
先决条件
-
samba-client
软件包已安装。
示例
例如,您可以使用 rpcclient
工具来:
管理打印机假脱机子系统(SPOOLSS)。
例 3.7. 将驱动程序分配给打印机
rpcclient server_name -U "DOMAIN\administrator" -c 'setdriver "printer_name" "driver_name"'
# rpcclient server_name -U "DOMAIN\administrator" -c 'setdriver "printer_name" "driver_name"' Enter DOMAIN\administrators password: Successfully set printer_name to driver driver_name.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索有关 SMB 服务器的信息。
例 3.8. 列出所有文件共享和共享的打印机
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用安全帐户管理器远程(SAMR)协议来执行操作。
例 3.9. 在 SMB 服务器中列出用户
rpcclient server_name -U "DOMAIN\administrator" -c 'enumdomusers'
# rpcclient server_name -U "DOMAIN\administrator" -c 'enumdomusers' Enter DOMAIN\administrators password: user:[user1] rid:[0x3e8] user:[user2] rid:[0x3e9]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您针对独立服务器或域成员运行命令,它将列出本地数据库中的用户。针对 AD DC 或 NT4 PDC 运行命令列出域用户。
3.20.6. 使用 samba-regedit 应用程序 复制链接链接已复制到粘贴板!
某些设置(如打印机配置)存储在 Samba 服务器上的注册表中。您可以使用基于 ncurses 的 samba-regedit
应用程序来编辑 Samba 服务器的注册表。
先决条件
-
samba-client
软件包已安装。
流程
要启动应用程序,请输入:
samba-regedit
# samba-regedit
使用以下键:
- 上键和下键:在注册表树和值中进行导航。
- Enter:打开关键字或编辑值。
-
选项卡 :在
Key
和Value
窗格间切换。 - Ctrl+C:关闭应用程序。
3.20.7. 使用 smbcontrol 工具 复制链接链接已复制到粘贴板!
smbcontrol
工具允许您向 smbd
、nmbd
、winbindd 或
所有这些服务发送命令消息。这些控制消息指示服务重新载入其配置。
先决条件
-
samba-common-tools
软件包已安装。
流程
-
通过将
reload-config
消息类型发送到所有
目的地,来重新载入smbd
、nmbd
、winbindd
服务的配置:
smbcontrol all reload-config
# smbcontrol all reload-config
3.20.8. 使用 smbpasswd 工具 复制链接链接已复制到粘贴板!
smbpasswd
工具管理本地 Samba 数据库中的用户帐户和密码。
先决条件
-
samba-common-tools
软件包已安装。
流程
如果您以用户身份运行命令,
smbpasswd
将修改运行命令的用户的 Samba 密码。例如:smbpasswd
[user@server ~]$ smbpasswd New SMB password: password Retype new SMB password: password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果以
root
用户身份运行smbpasswd
,例如,您可以使用该工具来:创建一个新用户:
smbpasswd -a user_name
[root@server ~]# smbpasswd -a user_name New SMB password: password Retype new SMB password: password Added user user_name.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在将用户添加到 Samba 数据库之前,您必须先在本地操作系统中创建帐户。请参阅配置基本系统设置指南中的 从命令行添加新用户 部分。
启用 Samba 用户:
smbpasswd -e user_name
[root@server ~]# smbpasswd -e user_name Enabled user user_name.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 禁用 Samba 用户:
smbpasswd -x user_name
[root@server ~]# smbpasswd -x user_name Disabled user user_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除用户:
smbpasswd -x user_name
[root@server ~]# smbpasswd -x user_name Deleted user user_name.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.20.9. 使用 smbstatus 工具 复制链接链接已复制到粘贴板!
smbstatus
工具报告,关于:
-
每个
smbd
守护进程的每个 PID 到 Samba 服务器的连接。此报告包括用户名、主组群、SMB 协议版本、加密和签名信息。 -
每个 Samba 共享的连接。此报告包括
smbd
守护进程的 PID、连接机器的 IP、连接建立的时间戳、加密和签名信息。 - 锁定文件列表。报告条目包括更多详情,如 Opportunistic lock(oplock)类型
先决条件
-
samba
软件包已安装。 -
smbd
服务在运行。
流程
3.20.10. 使用 smbtar 工具 复制链接链接已复制到粘贴板!
smbtar
工具备份 SMB 共享的内容或其子目录,并将内容存储在 tar
存档中。或者,您可以将内容写入磁带设备。
先决条件
-
samba-client
软件包已安装。
流程
使用以下命令备份
//server/example/
共享中demo
目录的内容,并将内容存储在/root/example.tar
归档中:smbtar -s server -x example -u user_name -p password -t /root/example.tar
# smbtar -s server -x example -u user_name -p password -t /root/example.tar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.20.11. 使用 wbinfo 工具 复制链接链接已复制到粘贴板!
wbinfo
工具查询并返回 winbindd
服务创建和使用的信息。
先决条件
-
samba-winbind-clients
软件包已安装。
流程
例如,您可以使用 wbinfo
来:
列出域用户:
wbinfo -u
# wbinfo -u AD\administrator AD\guest ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出域组:
wbinfo -g
# wbinfo -g AD\domain computers AD\domain admins AD\domain users ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示用户的 SID:
wbinfo --name-to-sid="AD\administrator"
# wbinfo --name-to-sid="AD\administrator" S-1-5-21-1762709870-351891212-3141221786-500 SID_USER (1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示域和信任的信息:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow