收起左侧

HC620/SMR 硬盘外接储存权限问题解决方案

1
回复
21
查看
[ 复制链接 ]

1

主题

3

回帖

0

牛值

江湖小虾

2026-7-15 23:55:01 显示全部楼层 阅读模式

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,密码已知),做以下操作:

  1. /etc/samba/users/1003.share.conf 写入外接储存共享定义(路径 /vol00/HSH721414ALN6M0
  2. 设置 chmod -R 777 对外目录的权限
  3. 重启 Samba(systemctl restart smbd nmbd
收藏
送赞
分享

1

主题

3

回帖

0

牛值

江湖小虾

7 天前 楼主 显示全部楼层

勘误:HC620是Host-Manged SMR硬盘

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则