外观
用户主目录
主目录让每个用户在 NAS 上有一块只属于自己的私人空间。做完之后,用户连上 NAS 会看到一个以自己用户名命名的共享,只有他自己能进。这篇还会说明启用主目录对已有用户的影响。
适合谁
- 家庭里每个成员要有自己的私人目录,不想和别人混在一起。
- 小团队里给每位成员一个个人空间。
不适合的情况:
它是怎么工作的
主目录功能把你指定的一个共享文件夹当作「根」,每个用户的主目录是其中的 <用户名> 子目录,也就是 <共享文件夹的绝对路径>/<用户名>。之后:
- 新建用户时,OMV 自动在这个共享文件夹里为他建好主目录。
- SMB 的「主目录」共享按用户名生成:用户连上后看到一个同名共享,只能访问自己的目录。
- FTP 插件也能显示用户的主目录。
要让 SMB 里出现主目录共享,两个开关都要开:用户设置里的主目录,和 SMB 设置里的主目录,下面会逐个说明。
开始之前
- 新建一个共享文件夹专门放主目录,例如
homes,见 共享文件夹。建议权限选默认的 775,或者更严的 770。 - 如果已经有用户,先读下面的警告,并备份他们现有的主目录内容。
启用主目录
打开
用户 → 设置(Users → Settings),在 使用主目录(User home directory)一栏勾选 已启动(Enabled),位置(Location)选homes,点击 保存(Save)。打开
服务 → SMB/CIFS → 设置(Services → SMB/CIFS → Settings),在 主目录(Home directories)一栏勾选 已启动。这一栏的其他选项:选项 说明 可浏览(Browseable) 默认勾选。共享是否出现在网络的共享列表里 继承 ACLs、继承权限 默认不勾选,含义见 SMB 进阶 启用回收站(Enable recycle bin) 为每位用户的主目录单独建回收站 macOS 兼容性 给 Mac 客户端用 跟随符号链接、宽链接 符号链接相关,默认只跟随主目录内的链接 扩展选项(Extra options) 追加 Samba 参数,一般不用 点击 保存。
页面顶部出现黄色提示条时,点击 应用(Apply)。
以后新建的用户,会自动在
homes下得到自己的目录。
启用或更改主目录位置,会立刻改动已有用户
- 影响范围:所有属于
users组的非系统用户。点击 保存 的那一刻,OMV 就对每个这样的用户执行usermod,把主目录改成<位置>/<用户名>,不用等点应用。目标目录不存在时,会带上--move-home参数,把用户原主目录里的内容整体移动过去;原主目录不存在就没有东西可移动,OMV 随后创建一个空目录(权限 700,属主是该用户,属组users)。目标目录已经存在时,只改路径,不移动内容。 - 官方文档与源码不一致:官方文档说「原主目录内容不会被移动」,但按 OMV 8 的源码,目标目录不存在时是带移动参数的。我们没有在实机上验证,请以源码为准,按「会移动」来准备。
- 前置条件:如果已有用户原来就有主目录(比如在 shell 里用
useradd建的用户),先备份里面的内容。更换位置时同样会触发移动。 - 回退:在
用户 → 设置里取消 已启动 并保存,这些用户的主目录会改回一个无效路径(默认/nonexistent),目录里的内容不会被删除。如果内容已经被移动,要自己搬回去。
主目录共享的行为
- 共享名就是用户名。Windows 里访问
\\<NAS 地址>\<用户名>;用户连上服务器后,在共享列表里看到的是自己的用户名,而不是homes。 - 只有本人能进。OMV 生成的配置只允许与共享同名的用户访问,并且新建文件默认是 600、目录是 700,同组的其他人也看不到内容。
- 不使用「共享权限」。主目录共享不读取共享文件夹的 权限 设置,不要指望靠它控制主目录。
- 别把
homes本身再用普通 SMB 共享发给所有人,否则任何人都能看到所有用户名目录;内容虽然受目录权限保护,但没必要暴露。
FTP 插件的 服务 → FTP → 设置(需要先安装 FTP 插件)里有一栏 主目录,勾选 已启动 后,用户在 FTP 浏览列表里会看到自己的主目录,见 FTP 与 FTPS。
检查结果
在 OMV 的 shell(SSH 或本机控制台,root 身份)里检查:
sh
getent passwd <用户名>
ls -ld <共享文件夹的绝对路径>/<用户名>getent passwd输出的第 6 段是主目录路径,应该是.../homes/<用户名>。ls -ld里目录的属主应该是这个用户。新建用户的主目录权限由系统默认决定,以实际输出为准,需要收紧时用 ACL 对话框 选到这个子目录处理。
然后从客户端验证:
- 用该用户连
\\<NAS 地址>\<用户名>,能读写。 - 换另一个用户连同一个路径,被拒绝。
- 共享列表里没有名为
homes的共享。
常见问题
SMB 里看不到主目录共享。 两个开关是不是都开了,并且都点了应用。
某个用户没有主目录。 启用主目录之前就存在、但不在 users 组里的用户,OMV 不会处理。
想给每个用户限制容量。 用磁盘配额,见 磁盘配额。
备份。 主目录就在共享文件夹里,随着共享文件夹一起备份即可,见 备份策略。
参考资料
- OMV 官方文档:Users:User home directory
- OMV 源码:
UserMgmt::setSettings(对已有用户的处理)、Samba 的homes.j2模板