外观
用户与用户组
共享文件夹建好以后,要让每个人用自己的账号访问。这篇讲怎么在 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 |
admin | Web 管理界面的管理员,系统账户,登录 shell 是 nologin。不出现在用户列表,不能被授予共享文件夹权限,也没有 SMB 密码,所以不能用它连共享 |
openmediavault-admin 组 | 系统组。把普通用户加进去,他就成为 Web 管理员,见 管理员账户与最小权限 |
_ssh 组 | 系统组。OMV 的 SSH 配置只允许 root 和这个组的成员登录,见 SSH 与 SFTP 访问 |
sudo 组 | Debian 的提权组。要用 sudo 的 SSH 用户需要加入 |
后三个系统组不会出现在 用户 → 用户组 的列表里,但会出现在编辑用户时的用户组下拉框里,在那里给用户勾上即可。
创建用户
打开
用户 → 用户(Users → Users),点击 新建 | 导入(Create | Import)菜单里的 创建(Create)。填写表单:
字段 说明 名称(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 个字符 点击 保存(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 登录名、密码都一致。代价是两边改密码要同步。
创建用户组
- 打开
用户 → 用户组,点击 新建 | 导入 菜单里的 创建。 - 填 名称(Name)、选 成员(Members)、可填 标签。保存后按需点 应用。
- 之后加人减人,选中组点 编辑(Edit)改成员,也可以在用户的编辑页改用户组。
用户组的作用是「按角色授权」:一次授权给组,换人时只改成员,不用回头改每个共享文件夹。具体怎么授权见 设置共享文件夹权限。
删除用户组前要先清空成员,否则删除会失败。
删除用户时,OMV 调用的是 userdel --force,不带 --remove,按这个参数看,用户留在共享文件夹里的文件不会被一起删掉,但这一点我们没有在实机上验证过。删除用户前,先确认他的数据已经备份或转交。
批量导入
新建 | 导入 菜单里的 导入(Import)可以一次建多个用户或组,每行一条,格式在输入框里有注释示例。用户的密码要写明文,注意导入完删掉记录。详细格式和脚本化做法见 批量导入用户。
UID 和 GID 为什么要留意
文件在磁盘上记的是数字 UID 和 GID,不是用户名。NFS、容器、重装系统后接回数据盘,都会用到这些数字:
- NFS 客户端和 OMV 上的用户,靠 UID 对应,见 NFS 共享。
- 容器用 PUID、PGID 指定身份,见 容器权限。
- 重装 OMV 后用户要重新建,UID 不一致会让原有文件的属主对不上。导入功能允许指定 UID,见 系统盘坏了:重装并接回数据盘。
用户列表默认隐藏 UID、GID 列,可以在表格工具栏的列菜单里打开,或用 id <用户名> 查。
检查结果
在 OMV 的 shell(SSH 或本机控制台,root 身份)里检查:
sh
id <用户名>
getent group <用户组名>
pdbedit -Lid应该看到类似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 的习惯不同,很容易出问题。建议统一小写。