本文详细讲解通过PuTTY/Xshell等终端工具,以SSH登录Synology DSM,执行ldbsearch命令筛选Directory Server已禁用用户的完整流程,附前提准备、命令解析、结果导出及常见问题解答,助IT管理员高效管理用户账号。
在企业使用Synology Directory Server进行域用户管理时,经常需要清理冗余账号——尤其是长期未使用的“已禁用用户”(如离职员工账号)。但Synology DSM的图形界面并未提供“一键查看已禁用用户”的功能,直接在“用户列表”中翻找效率极低。此时,通过SSH登录NAS并执行ldbsearch命令,就能快速筛选出所有已禁用用户,解决管理员的管理痛点。本文基于Synology官方教程,从“前提准备”“分步实操”“命令解析”“进阶操作”四个维度,手把手教你完成禁用用户的查询,同时覆盖常见问题解决方案,确保不同技术基础的管理员都能顺利操作。
一、前提准备:3项核心条件,确保操作能启动
在执行SSH命令前,需先完成“开启SSH服务”“准备终端工具”“确认root权限”三项准备,这是后续操作的基础——缺少任何一项,都可能导致SSH登录失败或命令无法执行。
1. 开启Synology DSM的SSH服务
Synology NAS默认关闭SSH服务,需手动在控制面板中开启,步骤如下:
1. 用管理员账号(如admin)登录Synology DSM桌面,点击桌面左上角的“控制面板”(灰色齿轮图标,位于“文件 Station”旁);
2. 在控制面板左侧导航栏中,找到“系统与硬件”分类下的“终端机和SNMP”选项,点击进入;
3. 切换到“终端机”选项卡,勾选“启用SSH服务”(选项旁会显示对勾);
4. 确认SSH端口(默认22,若需修改可自定义,如改为2222,但需记录端口号,后续登录需对应);
5. 点击页面底部的“应用”按钮,系统会弹出“确认启用SSH服务”提示,点击“确定”保存设置——此时NAS的SSH服务正式启动。
2. 准备终端工具(PuTTY/Xshell任选)
需在Windows/Mac计算机上安装支持SSH连接的终端工具,常用工具及准备步骤如下:
| 工具名称 | 适用系统 | 下载与安装步骤 |
|----------|----------|------------------------------------------------------------------------------|
| PuTTY | Windows | 1. 访问PuTTY官网(https://www.chiark.greenend.org.uk/~sgtatham/putty/);2. 点击“putty.exe”下载(无需安装,双击即可运行);3. 保存到桌面,方便后续打开。 |
| Xshell | Windows | 1. 访问NetSarang官网下载免费版(https://www.xshell.com/zh/free-for-home-school/);2. 按安装向导默认步骤安装,勾选“创建桌面快捷方式”。 |
| 终端(Terminal) | Mac | 无需下载,自带工具:点击桌面左上角“启动台”→“其他”→“终端”,即可打开。 |
本文以最常用的“PuTTY”为例讲解,其他工具操作逻辑一致,仅界面细节略有差异。
3. 确认root权限及密码
执行ldbsearch命令需“root权限”(普通用户无此命令执行权限),需提前确认root密码:
- 默认root密码:Synology NAS的root账号默认与管理员admin账号密码相同(若未修改过admin密码,直接用admin密码登录root即可);
- 修改过的root密码:若曾通过SSH或DSM修改过root密码,需使用修改后的密码登录(若忘记,可通过DSM重置admin密码,root密码会同步重置为新的admin密码);
- 权限验证:后续登录时,若出现“root@DSM:~”提示符,说明已获取root权限,可执行命令。
二、分步实操:4步找到Synology Directory Server已禁用用户
核心流程为“SSH登录NAS→执行ldbsearch命令→查看输出结果→识别禁用用户”,每一步都需注意细节,避免因参数错误导致查询失败。
1. 第一步:打开终端工具并配置SSH连接
以PuTTY为例,配置连接参数:
1. 双击桌面“putty.exe”,打开PuTTY配置窗口;
2. 在窗口左侧“Session”(会话)选项中,填写3个关键参数:
- Host Name (or IP address):输入Synology NAS的局域网IP地址(如192.168.1.100,可在DSM→控制面板→网络→网络界面中查看);
- Port:输入之前开启SSH时设置的端口(默认22,若修改过则填自定义端口,如2222);
- Connection type:点击选中“SSH”(默认可能为“Telnet”,需手动切换);
3. 无需修改其他配置,直接点击窗口右下角的“Open”按钮,启动SSH连接。
2. 第二步:SSH登录root账号
首次连接会弹出安全提示,后续登录则直接进入命令行:
1. 首次连接时,会弹出“PuTTY Security Alert”窗口,提示“服务器的主机密钥未在注册表中存储”,点击“Yes”(信任该NAS,后续登录不再提示);
2. 窗口切换为黑色命令行界面,出现“login as: ”提示符,输入“root”(小写,不可大写),按Enter键;
3. 接着出现“root@192.168.1.100's password: ”提示符,输入root密码(默认与admin相同,输入时密码不显示,需准确输入),按Enter键;
4. 若登录成功,命令行提示符会变为“root@DSM:~”(“DSM”为NAS的设备名称,可能不同);若提示“Permission denied, please try again.”,说明密码错误,需重新输入。
3. 第三步:执行ldbsearch查询命令
在root命令行中输入官方指定的查询命令,注意字符拼写和空格:
1. 复制以下命令(建议直接复制,避免手动输入时漏字符):
```
ldbsearch -H ldap://localhost '(&(objectCategory=Person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))' -P
```
2. 在“root@DSM:~”提示符后粘贴命令,按Enter键执行;
3. 等待1-3秒(取决于用户数量),命令执行完成后,会在窗口中输出大量文本信息——这些就是Synology Directory Server中所有已禁用用户的LDAP属性数据。
4. 第四步:从输出结果中识别已禁用用户
输出结果包含用户的DN(识别名)、用户名、账号状态等信息,需重点关注“sAMAccountName”和“userAccountControl”两个字段:
1. 核心字段说明:
- sAMAccountName:用户登录名(如“ZhangSan”“LiSi”,对应DSM中创建的域用户名,是识别用户的关键);
- userAccountControl:用户账号控制属性,值包含“2”即代表账号已禁用(如“514”=512+2,“512”是普通用户属性,“2”是禁用属性);
2. 查找方法:
- 用鼠标滚轮在输出结果中滚动,找到包含“sAMAccountName: ”的行,记录对应的用户名;
- 查看该用户名对应的“userAccountControl: ”字段,若值包含“2”,则该用户为已禁用状态;
- 示例输出(关键信息):
```
dn: CN=ZhangSan,OU=Users,DC=company,DC=com
objectClass: top
objectClass: person
objectClass: user
sAMAccountName: ZhangSan
userAccountControl: 514 514=512+2,代表已禁用
...
dn: CN=WangWu,OU=Users,DC=company,DC=com
sAMAccountName: WangWu
userAccountControl: 512 仅512,代表正常启用
...
```
从示例中可看出,“ZhangSan”是已禁用用户,“WangWu”是正常用户。
三、命令深度解析:为什么这个命令能找到禁用用户?
很多管理员会疑惑“命令中的参数是什么意思”,了解参数逻辑能避免后续修改命令时出错,同时理解查询原理。
1. 完整命令参数拆解
命令“ldbsearch -H ldap://localhost '(&(objectCategory=Person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))' -P”可拆分为4个核心部分:
| 参数/部分 | 作用说明 |
|-----------------------------------|--------------------------------------------------------------------------|
| ldbsearch | Synology DSM内置的LDAP查询命令,用于从Synology Directory Server中读取用户、组等目录数据,类似Windows的“ldp.exe”工具。 |
| -H ldap://localhost | 指定LDAP服务器地址:“-H”是“Host”的缩写,“ldap://localhost”代表“连接本地NAS的LDAP服务”(Synology Directory Server本质是LDAP服务器),无需修改该参数。 |
| 过滤器:
'(&(objectCategory=Person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))' | 最关键的筛选条件,多条件组合筛选“已禁用用户”:
1. `objectCategory=Person`:排除“计算机”“组”等非人员对象,仅保留“人员”类别;
2. `objectclass=user`:在“人员”中进一步筛选“用户”对象(排除“联系人”等其他人员类型);
3. `userAccountControl:1.2.840.113556.1.4.803:=2`:按“账号状态”筛选,“1.2.840.113556.1.4.803”是LDAP的“按位与匹配规则”,“userAccountControl=2”代表“ACCOUNTDISABLE”(账号禁用),即仅保留禁用用户。 |
| -P | 指定LDAP协议版本,默认自动适配Synology Directory Server的LDAP版本(通常为LDAP v3),无需额外配置,加该参数可避免版本不兼容报错。 |
2. 关键逻辑:userAccountControl的“禁用标志位”
“userAccountControl”是Windows域用户的核心属性,每个数值代表一种账号状态,其中“2”是“禁用”的专属标志位:
- 正常启用的普通用户:userAccountControl=512(512是“普通用户”的基础值);
- 已禁用的普通用户:userAccountControl=514(512+2,叠加“禁用”标志位);
- 已禁用的管理员用户:userAccountControl=66050(65536+512+2,叠加“管理员”“普通用户”“禁用”标志位);
无论基础值是多少,只要userAccountControl包含“2”,就代表账号已禁用——这也是命令能精准筛选的核心原理。
四、进阶操作:结果导出与筛选,提升管理效率
若Synology Directory Server中用户数量较多(如超过50个),直接在命令行查看结果会很繁琐,可通过“结果导出到文件”“关键词筛选”提升效率。
1. 导出结果到文件,方便后续分析
将查询结果写入TXT文件,再通过File Station下载到本地电脑,用Excel打开分析:
1. 在SSH命令行中,输入以下修改后的命令(末尾加“> 路径/文件名.txt”):
```
ldbsearch -H ldap://localhost '(&(objectCategory=Person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))' -P > /volume1/homes/admin/disabled_users.txt
```
路径说明:“/volume1/homes/admin”是DSM中“admin用户的家目录”(volume1是默认存储池,若存储池名称不同需修改),可通过File Station直接访问;
2. 按Enter键执行命令,执行完成后无额外输出(结果已写入文件);
3. 登录DSM,打开“File Station”,导航到“homes→admin”文件夹,会看到“disabled_users.txt”文件;
4. 右键点击该文件,选择“下载”,保存到本地电脑——打开文件后,可直接复制“sAMAccountName”字段对应的用户名,整理成禁用用户清单。
2. 用grep命令筛选关键信息,快速找用户名
若不想导出文件,可在命令中加“| grep 关键词”,仅显示包含用户名的行:
1. 执行以下命令:
```
ldbsearch -H ldap://localhost '(&(objectCategory=Person)(objectclass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))' -P | grep sAMAccountName
```
2. 命令执行后,仅输出包含“sAMAccountName: ”的行,示例:
```
sAMAccountName: ZhangSan
sAMAccountName: ZhaoLiu
sAMAccountName: ChenQi
```
直接就能看到所有已禁用用户的登录名,无需在大量文本中翻找。
五、常见问题与解决方案:解决操作中的高频报错
在SSH登录或命令执行过程中,管理员可能遇到“登录失败”“命令报错”等问题,以下是高频问题的解决方案。
Q1:SSH登录时提示“Connection refused”(连接被拒绝)?
A1:分3步排查:
1. 检查SSH服务是否开启:登录DSM→控制面板→终端机和SNMP→确认“启用SSH服务”已勾选,若未勾选则开启并应用;
2. 确认端口号正确:若修改过SSH端口(如改为2222),登录时需在PuTTY的“Port”中填对应端口,而非默认22;
3. 检查网络连通性:在本地电脑按“Win+R”,输入“ping 192.168.1.100”(NAS的IP),若提示“请求超时”,说明电脑与NAS不在同一局域网,或NAS未联网,需先解决网络问题。
Q2:输入root密码后提示“Permission denied, please try again.”(权限拒绝)?
A2:原因及解决:
1. 密码错误:确认输入的是root密码(默认与admin相同),若修改过admin密码,需用新密码登录;
2. 双因素认证影响:若DSM开启了“双因素认证”,SSH登录root需使用“应用专用密码”(创建路径:DSM→个人设置→安全→应用专用密码→点击“创建”,输入名称如“SSH”,生成专用密码);
3. 账号被锁定:若多次输错密码,root账号可能被临时锁定,等待10-15分钟后再尝试登录。
Q3:执行命令后提示“ldbsearch: command not found”(命令未找到)?
A3:2个核心原因:
1. 未安装Synology Directory Server:登录DSM→套件中心→搜索“Synology Directory Server”,确认已安装且状态为“已启动”,未安装则点击“安装”并启动;
2. 未用root权限登录:当前登录用户是普通用户(如admin),无ldbsearch命令执行权限,需退出后重新用root账号登录(执行“exit”命令退出当前用户,再输入“root”重新登录)。
Q4:命令执行后无结果输出(空白),怎么办?
A4:说明Synology Directory Server中暂无已禁用用户,或命令过滤器有误:
1. 验证是否有禁用用户:登录DSM→Synology Directory Server→用户→查看用户列表,手动勾选“已禁用”列,确认是否有禁用用户;
2. 检查命令拼写:重新复制官方命令,确保过滤器中的括号、引号、冒号无遗漏(尤其是“userAccountControl:1.2.840.113556.1.4.803:=2”中的冒号和数字);
3. 重启Directory Server:若确认有禁用用户但命令无结果,登录DSM→套件中心→已安装→找到“Synology Directory Server”→点击“重启”,重启后再执行命令。
六、注意事项:安全与管理建议
完成禁用用户查询后,需注意以下事项,避免NAS安全风险,同时提升账号管理效率。
1. 操作后关闭SSH服务(降低安全风险)
SSH服务开启后,若被恶意扫描到端口,可能存在暴力破解风险——建议查询完成后立即关闭:
1. 登录DSM→控制面板→终端机和SNMP→“终端机”选项卡;
2. 取消勾选“启用SSH服务”,点击“应用”→“确定”,关闭SSH服务;
3. 若后续需再次查询,临时开启SSH即可,避免长期开启。
2. 谨慎处理已禁用用户(避免误删)
列出禁用用户后,需先核实账号用途,再决定是否清理:
1. 核实账号归属:通过“sAMAccountName”联系部门负责人,确认是否为离职、调岗员工的冗余账号;
2. 清理冗余账号:若确认无需保留,登录DSM→Synology Directory Server→用户→选中禁用用户→点击“删除”(删除前建议备份用户数据,如桌面文件、邮件);
3. 保留必要禁用账号:若为“备用账号”“测试账号”,需记录在管理文档中,避免后续误删。
3. 定期执行查询(保持账号整洁)
建议每月执行一次禁用用户查询,避免冗余账号堆积:
1. 制定“月度账号审计”计划,固定时间(如每月最后一个周五)通过本文方法查询禁用用户;
2. 结合DSM的“用户过期提醒”功能(Synology Directory Server→用户→编辑→账号过期设置),提前提醒即将过期的账号,减少禁用账号数量。
总结
Synology Directory Server的已禁用用户查询,虽无法通过图形界面实现,但通过“SSH+ldbsearch命令”的组合,能高效解决这一痛点。核心是掌握“开启SSH→root登录→执行命令→结果分析”的流程,同时理解命令中过滤器的逻辑——尤其是“userAccountControl=2”代表禁用的关键规则。无论是企业IT管理员清理冗余账号,还是个人用户管理小型域环境,本文方法都能快速满足需求。操作时需注意SSH的安全使用,避免长期开启,同时谨慎处理已禁用用户,确保Directory Server的账号管理既高效又安全。
要不要我帮你整理一份Synology Directory Server禁用用户查询操作 Checklist?包含前提准备、分步操作、命令复制、结果导出的关键节点,方便你打印后对照执行,或分享给团队其他管理员。

地址:北京市海淀区白家疃尚品园 1号楼225
北京群晖时代科技有限公司
