跳转到内容

用户主目录 ​

主目录让每个用户在 NAS 上有一块只属于自己的私人空间。做完之后,用户连上 NAS 会看到一个以自己用户名命名的共享,只有他自己能进。这篇还会说明启用主目录对已有用户的影响。

适合谁 ​

  • 家庭里每个成员要有自己的私人目录,不想和别人混在一起。
  • 小团队里给每位成员一个个人空间。

不适合的情况:

它是怎么工作的 ​

主目录功能把你指定的一个共享文件夹当作「根」,每个用户的主目录是其中的 <用户名> 子目录,也就是 <共享文件夹的绝对路径>/<用户名>。之后:

  • 新建用户时,OMV 自动在这个共享文件夹里为他建好主目录。
  • SMB 的「主目录」共享按用户名生成:用户连上后看到一个同名共享,只能访问自己的目录。
  • FTP 插件也能显示用户的主目录。

要让 SMB 里出现主目录共享,两个开关都要开:用户设置里的主目录,和 SMB 设置里的主目录,下面会逐个说明。

开始之前 ​

  • 新建一个共享文件夹专门放主目录,例如 homes,见 共享文件夹。建议权限选默认的 775,或者更严的 770。
  • 如果已经有用户,先读下面的警告,并备份他们现有的主目录内容。

启用主目录 ​

  1. 打开 用户 → 设置(Users → Settings),在 使用主目录(User home directory)一栏勾选 已启动(Enabled),位置(Location)选 homes,点击 保存(Save)。

  2. 打开 服务 → SMB/CIFS → 设置(Services → SMB/CIFS → Settings),在 主目录(Home directories)一栏勾选 已启动。这一栏的其他选项:

    选项说明
    可浏览(Browseable)默认勾选。共享是否出现在网络的共享列表里
    继承 ACLs、继承权限默认不勾选,含义见 SMB 进阶
    启用回收站(Enable recycle bin)为每位用户的主目录单独建回收站
    macOS 兼容性给 Mac 客户端用
    跟随符号链接、宽链接符号链接相关,默认只跟随主目录内的链接
    扩展选项(Extra options)追加 Samba 参数,一般不用

    点击 保存。

  3. 页面顶部出现黄色提示条时,点击 应用(Apply)。

  4. 以后新建的用户,会自动在 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 对话框 选到这个子目录处理。

然后从客户端验证:

  1. 用该用户连 \\<NAS 地址>\<用户名>,能读写。
  2. 换另一个用户连同一个路径,被拒绝。
  3. 共享列表里没有名为 homes 的共享。

常见问题 ​

SMB 里看不到主目录共享。 两个开关是不是都开了,并且都点了应用。

某个用户没有主目录。 启用主目录之前就存在、但不在 users 组里的用户,OMV 不会处理。

想给每个用户限制容量。 用磁盘配额,见 磁盘配额。

备份。 主目录就在共享文件夹里,随着共享文件夹一起备份即可,见 备份策略。

参考资料 ​

  • OMV 官方文档:Users:User home directory
  • OMV 源码:UserMgmt::setSettings(对已有用户的处理)、Samba 的 homes.j2 模板

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。