群晖给所有用户批量预建home文件夹:本地、域、LDAP命令各不同
什么场景需要"预建"home 文件夹
先说结论:大多数情况下无需为所有用户预先创建 home 文件夹——启用用户主目录服务后,系统会在用户首次访问需要 home 文件夹的应用程序时自动生成(例如在 File Station 浏览 home 文件夹时)。但两种情况下你会想主动批量建一次:
- 用户是在启用主目录服务之前创建的老账号,一直没触发过自动生成;
- 管理上有要求:配额统一初始化、数据迁移前盘点、权限审计,都需要所有 home 先真实存在。
命令按用户类型分三种情况,前置开关和命令都不一样,别混用。
本地用户:一条命令
- 前往 控制面板 > 用户和群组 > 高级设置,确保已勾选启用用户主目录服务。
- 前往 控制面板 > 终端机和 SNMP > 终端机,确保已勾选启用 SSH 服务。
- 以 root 身份通过 SSH 客户端登录 NAS。
- 运行以下命令为所有本地用户创建 home 文件夹:
synouserhome --check-all-folders local
域用户:先分清两种环境再选命令
- 前往 控制面板 > 域/LDAP > 域用户 > 用户主目录,确保已勾选为域用户启用主目录服务。
- 同样开启 SSH 服务并以 root 登录。
- 按环境二选一:
- NAS 加入的是 Windows AD 服务器,或托管在其他群晖设备上的 Synology Directory Server:
synouser --create_homes domain
- NAS 加入的是自身托管的 Synology Directory Server(目录服务跑在本机上):
synouser --enum domain | tail -n +2 | xargs -r -d '\n' -I {} synouserhome --prepare-folder "{}"
LDAP 用户
- 前往 控制面板 > 域/LDAP > LDAP 用户 > 用户主目录,确保已勾选为 LDAP 用户启用主目录服务。
- 开启 SSH 服务并以 root 登录。
- 运行:
synouser --enum ldap | tail -n +2 | xargs -r -d '\n' -I {} synouserhome --prepare-folder "{}"
验证
命令跑完后,打开 File Station 进入 homes 共享文件夹,逐个检查每个用户名对应的文件夹是否已经出现;再随便挑一个用户登录 DSM 后在 File Station 里浏览自己的 home 文件夹,能正常进入即确认生成成功。
一个坑
域用户的两条命令别选错。同样是"域用户",加入 Windows AD(或他机上的 Synology Directory Server)用 synouser --create_homes domain 一条就完;而目录服务托管在 NAS 自己身上时用的是 enum 加 prepare-folder 的组合命令。另一个常见空跑原因:命令执行前对应的主目录服务开关没勾上(域用户、LDAP 用户的开关位置和本地用户不同),命令跑完 homes 里什么都没多,先回头检查开关再重跑。
企业环境批量初始化 NAS 用户主目录、做配额与权限统一规划,可以找贵州本地的诚鑫致达科技做方案与实施。