HC620/SMR 硬盘外接储存权限问题解决方案
适用: 飞牛 OS (TRIM) + 外接 HC620 等 HAMR/SMR 硬盘 背景: HC620 是 HAMR(热辅助磁记录)技术 + SMR(叠瓦式磁记录)硬盘,飞牛 TRIM 的 ZFS 无法直管这类硬盘,只能作为"外接储存"挂载到 /vol00/ 路径下 问题: 管理员(AKI)挂好外接储存后,新建的普通用户登录飞牛,能看到外接储存的共享名,但没有权限读写,或者根本看不到共享
一、问题的本质
飞牛 TRIM 的 Samba 采用 per-user 配置文件机制,即:
code复制
include = /etc/samba/users/%Y.share.conf
%Y = 登录用户的 UID。
- 管理员用户(UID 1000):创建存储空间时自动生成了完整的
.share.conf
- 普通用户(UID 1001~1004):新建用户时
.share.conf 为空文件(0 字节)
HC620/SMR 这类盘挂载到外接储存后,飞牛不会自动把外接储存的共享配置同步给其他用户,导致普通用户无法访问。
二、检查当前状态
2.1 查看所有 Samba 用户
bash复制
pdbedit -L
输出示例:
code复制
AKI:1000:
koki:1003:
(其他用户)
2.2 查看用户对应的 .share.conf
bash复制
ls -la /etc/samba/users/
你会看到:
code复制
-rw-r--r-- 1 root root 3738 Jul 15 22:41 1000.share.conf # AKI → 有内容
-rw-r--r-- 1 root root 0 Jul 15 21:21 1003.share.conf # koki → 空
2.3 测试用户能看到什么
bash复制
smbclient -L localhost -U koki%密码 -m SMB2
输出只有:
code复制
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service
三、解决方案
3.1 确认外接储存挂载路径
bash复制
ls /vol00/
HC620/SMR 外接盘的路径通常为 /vol00/型号名/,例如:
code复制
/vol00/HSH721414ALN6M0/
3.2 给普通用户添加外接储存共享
以 koki (UID 1003) 为例,创建或编辑 /etc/samba/users/1003.share.conf:
bash复制
cat > /etc/samba/users/1003.share.conf << 'EOF'
[外接储存盘名]
path = /vol00/HSH721414ALN6M0
browseable = yes
available = yes
writeable = yes
hide special files = yes
oplocks = yes
hide unreadable = yes
vfs objects = full_audit trim
EOF
如果只想开放外接盘下的特定目录(推荐):
bash复制
cat > /etc/samba/users/1003.share.conf << 'EOF'
[共享文件夹名]
path = /vol00/HSH721414ALN6M0/你建的文件夹
browseable = yes
available = yes
writeable = yes
hide special files = yes
oplocks = yes
hide unreadable = yes
vfs objects = full_audit trim
EOF
3.3 设置文件系统权限(最关键)
Samba 不绕开 Linux 文件权限。写好了 .share.conf,还得设置文件夹本身的 rwx 权限。
对外开放的文件夹
bash复制
chmod -R 777 /vol00/HSH721414ALN6M0/公共文件夹
仅管理员可见的文件夹
bash复制
chown -R AKI:Users /vol00/HSH721414ALN6M0/管理员文件夹
chmod -R 700 /vol00/HSH721414ALN6M0/管理员文件夹
3.4 重启 Samba 服务
bash复制
systemctl restart smbd nmbd
3.5 验证
bash复制
smbclient -L localhost -U koki%密码 -m SMB2
正常输出:
code复制
Sharename Type Comment
--------- ---- -------
共享文件夹名 Disk
IPC$ IPC IPC Service
四、为什么 HC620/SMR 和其他内置盘不一样?
飞牛内置存储(ZFS 池)的文件夹位于 /vol1/UID/ 路径下,飞牛的 TRIM 前端在创建用户时会处理权限和共享同步。
但外接储存(/vol00/)是单独挂载的,不受 ZFS 管理:
- HC620 这类 HAMR/SMR 盘因为技术特性,无法纳入 ZFS 存储池
- 挂载到外接储存后,共享权限需要手动配置
/etc/samba/users 下的 per-user 配置文件不受飞牛前端管控
所以这不是 bug,是外接储存天生的设计差异。
五、常规情况下怎么预防
如果想省事,新用户创建后立刻执行:
bash复制
# 先确认用户 UID
pdbedit -L
# 创建用户个人外接储存共享(替换 1003 为实际 UID)
cat > /etc/samba/users/1003.share.conf << 'EOF'
[外接储存盘名]
path = /vol00/你的外接盘
browseable = yes
available = yes
writeable = yes
hide special files = yes
oplocks = yes
hide unreadable = yes
vfs objects = full_audit trim
EOF
# 设置权限
chmod -R 777 /vol00/你的外接盘/公共目录
# 重启 Samba
systemctl restart smbd nmbd
六、排错命令速查
bash复制
# 查用户 UID 映射
pdbedit -L
# 测试用户可见共享
smbclient -L localhost -U 用户名%密码 -m SMB2
# 检查 Samba 配置
testparm -s
# 查看实时日志
tail -f /var/log/samba/log.smbd
# 检查外接盘挂载点
ls -la /vol00/
df -h /vol00/
附录:实际案例
硬件:
- HGST HC620 (14TB HAMR/SMR) → 外接储存
/vol00/HSH721414ALN6M0/
- WD 蓝盘 500GB ×3 → ZFS RAIDZ1 存储池
/vol1/
问题: 管理员 AKI 能正常读写 HC620,普通用户 koki 登录后只看到 IPC$
解决: 补充 /etc/samba/users/1003.share.conf 定义外接储存共享 + 设置 chmod 777 文件夹权限。重启 Samba 后 koki 正常访问。
本指南基于飞牛 OS TRIM 版本实测
附:让 AGENT 代劳
如果本地跑着龙虾(OpenClaw 小龙虾)或 Hermes 等 AI Agent,可以直接丢给它执行:
代劳指令:
飞牛 NAS(192.168.31.88)用户 koki(UID 1003)没有外接储存权限。请 SSH 到 NAS(用户名 AKI,密码已知),做以下操作:
- 给
/etc/samba/users/1003.share.conf 写入外接储存共享定义(路径 /vol00/HSH721414ALN6M0)
- 设置
chmod -R 777 对外目录的权限
- 重启 Samba(
systemctl restart smbd nmbd)