返回列表 发布新帖

[常见问题] 绿联 NAS 运行 Hermes Agent 降权问题解决!PUID/PGID [本内容部分/全部由AI生成]

338 3
发表于 2026-7-13 12:51:43 | 查看全部 阅读模式 IP:–江苏–南京

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 Ornt5i 于 2026-7-14 12:03 编辑

标签: Hermes UGOS 绿联NAS Docker 权限 PUID PGID   

备注:   “本内容部分/全部由AI生成,总结了我的修复过程思路”
最近在绿联 DX4600 Pro 上部署 Hermes Agent,遇到了一个比较典型的权限问题,排查了一圈之后发现 Hermes 官方其实已经支持 UGOS,只是很多人容易忽略这个配置。
把整个过程分享出来,希望能帮到后面遇到同样问题的朋友。


问题现象
Hermes 部署完成后,可以正常启动,但访问 NAS 共享目录时报错,例如:
Permission denied: '/volume1/龙虾文件夹1/...'甚至在容器里查看权限:
ls -ld /volume1/龙虾文件夹1显示:
d---------但是在 NAS 宿主机查看:
ls -ld /volume1/龙虾文件夹1却是:
drwxrwxrwx+权限完全正常。
最开始我一直以为是:
  • Docker 挂载失败
  • UGOS ACL 问题
  • bind mount 权限异常
结果都不是。


排查过程   
整个排查过程大概经历了几个阶段。

① 排除 Docker 挂载问题
先确认:
docker inspect hermes确认:
  • bind mount 正常
  • 挂载路径正确
另外,我还有一个 Spider 容器,同样挂载:
/volume1/龙虾文件夹1Spider 可以正常读写。
说明:
不是 Docker 挂载的问题。


② 排除共享目录权限
宿主机执行:
stat /volume1/龙虾文件夹1得到:
Access: (0777/drwxrwxrwx)再执行:
getfacl /volume1/龙虾文件夹1结果:
user::rwxgroup::rwxother::rwx说明:
共享目录权限本身没有问题。


③ 找到真正原因
继续分析 Hermes 官方镜像启动流程:
Docker      │      ▼s6-overlay      │      ▼main-wrapper.sh      │      ▼s6-setuidgid hermes      │      ▼gatewayHermes 并不会一直以 root 运行。
启动后会主动降权:
root    │    ▼uid=10000gid=10000而绿联 UGOS 的共享目录,对这个 UID 并没有对应权限,因此出现:
Permission denied

一开始我也走了弯路
最开始我尝试:
user: "0:0"甚至修改:
/opt/hermes/docker/main-wrapper.sh跳过:
s6-setuidgid hermes虽然能够解决权限问题,但是:
  • 修改官方镜像
  • 升级容易失效
  • 失去官方默认的安全隔离
并不是推荐方案。


后来发现:官方其实已经支持 UGOS
翻了一下 Hermes 镜像里的源码,发现 stage2-hook.sh 已经写好了:
# NAS users (UGOS, Synology, unRAID)而且直接支持:
PUIDPGID启动时会自动执行:
usermod hermesgroupmod hermes把默认:
uid=10000修改成:
你的 NAS 用户 UID然后仍然保持:
drop privileges也就是说:
既保留了官方的安全设计,
又能正常访问共享目录。


正确配置方式
compose 中增加:
environment:  TZ: Asia/Shanghai  PUID: "1000"  PGID: "10"注意:
不要再配置:
user: "0:0"官方已经明确说明:
不建议使用 --user(Compose 的 user: 本质也是同一个机制)。


如何查看自己的 UID/GID
SSH 登录 NAS:
id例如:
uid=1000(14752872993)gid=10(admin)groups=10(admin),100(users),...那么配置:
PUID: "1000"PGID: "10"即可。
也可以使用:
HERMES_UIDHERMES_GID效果相同。


如何验证是否生效
不要执行:
docker exec hermes id这个默认是 root。
应该查看 Hermes 实际运行进程:
docker exec hermes ps -eo user,uid,gid,pid,cmd | grep gateway正常应该看到:
hermes 1000 10 ... hermes gateway run也可以直接:
docker exec -u hermes hermes id输出类似:
uid=1000(hermes)gid=10(...)说明已经成功。


最终效果
配置完成后:
✅ Hermes 可以正常访问绿联 NAS 的共享目录
✅ 不需要修改官方镜像
✅ 不需要强制 root 运行
✅ 升级 Hermes 不会丢失配置
对于长期部署来说,这是官方推荐、维护成本也最低的方案。


最后补充一个容易误导人的现象
即使权限已经正常,有时执行:
ls -ld /volume1/共享目录仍可能显示:
d---------但实际上:
docker exec -u hermes hermes ls /volume1/共享目录已经能够正常列出文件,也可以正常读写。
因此,不要只根据 ls -ld 的输出判断是否有权限,更准确的做法是实际测试目录访问和文件读写。

我觉得这篇还有一个亮点,就是它不仅给出了最终配置,还完整记录了排查思路。对于后来遇到类似问题的人,能够知道为什么不要去修改 main-wrapper.sh,而应该优先使用 Hermes 官方已经提供的 PUID/PGID 支持。

评论3

nHspj0Lv.1 发表于 2026-7-14 10:25:07 | 查看全部 IP:–四川–成都–温江区
就是被挂载问题这么了很久
Ornt5i楼主Lv.1 发表于 2026-7-14 12:01:51 | 查看全部 IP:–江苏–南京
nHspj0 发表于 2026-7-14 10:25
就是被挂载问题这么了很久

哈哈哈 我这个帖子内容主要是AI 写的,排版好奇怪,不过问题确实是可以解决了
Ornt5i楼主Lv.1 发表于 2026-7-14 16:53:39 | 查看全部 IP:–江苏–南京
nHspj0 发表于 2026-7-14 10:25
就是被挂载问题这么了很久

能帮你解决就行,有些问题很小,但是就磨人

评论

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

本版积分规则

Copyright © 2026 绿联NAS私有云社区 版权所有 All Rights Reserved. 粤公网安备44030002002555号| 粤ICP备12028978号
关灯 在本版发帖
联系技术支持
返回顶部
快速回复 返回顶部 返回列表