跳转到内容

用户与用户组 ​

共享文件夹建好以后,要让每个人用自己的账号访问。这篇讲怎么在 OMV 里创建用户和用户组,以及几个带特殊含义的账号和组。做完之后,你会有一批能登录 SMB 的普通用户,和一两个按角色划分的用户组,为后面「按组授权」打基础。

先理解 OMV 的用户 ​

OMV 的用户管理就是 Debian 系统自己的用户管理,OMV 另外在自己的数据库里保存邮箱、SSH 公钥、「不允许修改账户」这些附加信息。

在界面里管理的是非系统用户和非系统组:UID、GID 在 1000–60000 之间(范围以系统的 /etc/login.defs 为准)。系统自带的账号不会出现在用户列表里,也不能通过界面修改。

对象说明
界面创建的用户UID 1000 起。主组固定是 users,OMV 不会为用户另建同名组
users 组GID 100,Debian 自带。所有界面创建的用户都在里面,也是共享文件夹默认的属组。它是系统组,所以不出现在 用户 → 用户组(Users → Groups)的列表里
自建用户组GID 1000 起,在 用户 → 用户组 创建,用来按角色授权,如 family、parents、sales
adminWeb 管理界面的管理员,系统账户,登录 shell 是 nologin。不出现在用户列表,不能被授予共享文件夹权限,也没有 SMB 密码,所以不能用它连共享
openmediavault-admin 组系统组。把普通用户加进去,他就成为 Web 管理员,见 管理员账户与最小权限
_ssh 组系统组。OMV 的 SSH 配置只允许 root 和这个组的成员登录,见 SSH 与 SFTP 访问
sudo 组Debian 的提权组。要用 sudo 的 SSH 用户需要加入

后三个系统组不会出现在 用户 → 用户组 的列表里,但会出现在编辑用户时的用户组下拉框里,在那里给用户勾上即可。

创建用户 ​

  1. 打开 用户 → 用户(Users → Users),点击 新建 | 导入(Create | Import)菜单里的 创建(Create)。

  2. 填写表单:

    字段说明
    名称(Name)登录名。可用字母、数字、_、.、-,不能以 - 开头。建议只用小写英文,NFS、SSH 都区分大小写。创建后不能改
    Email可选。邮件类功能会用到,例如邮件验证码两步验证
    密码(Password)、确认密码创建时必填。OMV 同时设置系统密码和 SMB 密码
    Shell默认 /usr/bin/sh。只用来访问共享的用户建议选 /usr/sbin/nologin,见下文提示
    用户组(Groups)可多选。users 已经是主组,不用再选;需要的额外组(如自建组、_ssh)在这里选
    SSH 公钥(SSH public keys)可选,用于公钥登录,见 SSH 与 SFTP 访问
    不允许修改账户(Disallow account modification)勾上后,该用户不能在 Web 界面的 账户 页改自己的密码和邮箱
    标签(Tags)备注,最长 65 个字符
  3. 点击 保存(Save)。页面顶部如果出现黄色提示条,点击 应用(Apply);没有出现就不需要。

选 nologin 的利弊

nologin 能保证用户即使被误加进 _ssh 组也进不了 shell,适合纯共享用户。代价是:这样的用户不能用 FTP(官方 FTP 插件默认要求有效 shell),也不能通过系统 SSH 的 SFTP 传文件。需要这些功能的用户,用默认的 /usr/bin/sh。

密码和 SMB ​

Samba 不走 PAM 登录,有自己的密码库。OMV 在界面里创建用户、改密码时,会同时更新系统密码和 Samba 密码库。所以:

  • 在 OMV 的 shell 里用 passwd 改密码,不会同步到 SMB,SMB 登录仍用旧密码。要改就在界面里改。
  • 在 shell 里用 useradd 建的用户,Samba 里没有记录,登不上 SMB。在界面里对该用户做一次编辑并重设密码,可以补上。
  • 想让 Windows 免输入密码,可以让 OMV 用户名和 Windows 登录名、密码都一致。代价是两边改密码要同步。

创建用户组 ​

  1. 打开 用户 → 用户组,点击 新建 | 导入 菜单里的 创建。
  2. 填 名称(Name)、选 成员(Members)、可填 标签。保存后按需点 应用。
  3. 之后加人减人,选中组点 编辑(Edit)改成员,也可以在用户的编辑页改用户组。

用户组的作用是「按角色授权」:一次授权给组,换人时只改成员,不用回头改每个共享文件夹。具体怎么授权见 设置共享文件夹权限。

删除用户组前要先清空成员,否则删除会失败。

删除用户时,OMV 调用的是 userdel --force,不带 --remove,按这个参数看,用户留在共享文件夹里的文件不会被一起删掉,但这一点我们没有在实机上验证过。删除用户前,先确认他的数据已经备份或转交。

批量导入 ​

新建 | 导入 菜单里的 导入(Import)可以一次建多个用户或组,每行一条,格式在输入框里有注释示例。用户的密码要写明文,注意导入完删掉记录。详细格式和脚本化做法见 批量导入用户。

UID 和 GID 为什么要留意 ​

文件在磁盘上记的是数字 UID 和 GID,不是用户名。NFS、容器、重装系统后接回数据盘,都会用到这些数字:

用户列表默认隐藏 UID、GID 列,可以在表格工具栏的列菜单里打开,或用 id <用户名> 查。

检查结果 ​

在 OMV 的 shell(SSH 或本机控制台,root 身份)里检查:

sh
id <用户名>
getent group <用户组名>
pdbedit -L
  • id 应该看到类似 uid=1000(alice) gid=100(users) groups=100(users),1001(family)。
  • getent group 能看到成员列表。
  • pdbedit -L 列出 SMB 用户。新建的用户应该在里面,admin 不在。

然后用这个账号从另一台电脑连 SMB(步骤见 SMB/CIFS 共享),能登录说明账号可用。

常见问题 ​

新用户连 SMB 一直提示密码错误。 Windows 默认用当前登录名去试。在用户名里写 <NAS 主机名>\<用户名>,或在凭据管理器里清掉旧凭据;也可能是密码在 shell 里被改过,见上文「密码和 SMB」。

提示 Unauthorized attempt to modify the system user account。 你选中的是系统账户。界面只允许改 UID 1000 以上的用户。

忘了 admin 的密码。 见 忘记管理员密码。

用户名能用大写吗。 界面允许,但 Linux、NFS、SSH 都区分大小写,和 Windows、macOS 的习惯不同,很容易出问题。建议统一小写。

参考资料 ​

  • OMV 官方文档:Users、FAQ
  • OMV 源码:UserMgmt RPC(usermgmt.inc),openmediavault.postinst(admin 与各系统组的创建)

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