本文详细讲解通过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?包含前提准备、分步操作、命令复制、结果导出的关键节点,方便你打印后对照执行,或分享给团队其他管理员。

如何列出Synology Directory Server中所有已禁用用户?SSH命令实操教程

新闻中心

联系我们

技术支持

  • ·

    Synology 无法访问共享文...

  • ·

    Synology NAS Win...

  • ·

    如何用 DiXiM Media ...

  • ·

    Synology DSM常规设置...

  • ·

    Active Backup fo...

  • ·

    Synology NAS打开Of...

  • ·

    Synology Migrati...

  • ·

    Synology Office多...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询