打通AI知识库的任督二脉-ACL权限控制

2026-04-22 13:15:23 1点赞 4收藏 2评论

大家好啊,我是执着于持续分享数码家电、软件技巧相关知识,坚持创作有深度、高质量作品的博主 醉雪梅花。期待您的关注。

你在使用 NAS 部署的 Obsidian 和 AI 助手时,有没有遇到过这种情况:

在 Obsidian 里记的笔记,AI 助手读不到。
让 AI 助手写入知识库的内容,Obsidian 里看不到。
两个地方各管各的,完全没法同步。

是不是每次新建一个笔记,AI 助手都读不到?

如果你有,这篇文章就是专门为你写的。


| 这个"任督二脉"是什么?

我在绿联 NAS DX4600 里,通过 Docker 部署有两个 Ai 助手:Hermes 和 OpenClaw,还有一个笔记管理应用 Obsidian。

还记得上篇文章我们提到的,用 AI 助手自动管理知识库,用 Obsidian 手动查看 吗?

我创建了一个共享文件夹,路径是"/volume1/AgentShared"。

打通AI知识库的任督二脉-ACL权限控制

我的设想很理想:

我把我的知识库和需要协作的文件都放在这个目录下,这样,Hermes 和 OpenClaw 可以通过这个目录进行文件协作,Obsidian 也可以直接把仓库挂载到这个目录,方便手动查看和编辑。

但现实很残酷:

等我部署完后,发现频繁弹出权限问题:Hermes 创建的文件,OpenClaw 和 Obsidian 没有权限读取;我在文件夹里创建的文件,它们三个都无权读取。这给我干不会了,这不是闹着玩呢。

打通AI知识库的任督二脉-ACL权限控制

后来我想明白了——三个应用住在不同的"容器"里,各有各的"办公室",各管各的文件。现在我给他们发了一间"会议室",但是,没给他们配一把共同的会议室钥匙啊。

这把共同的钥匙,就是 ACL 权限。

打通AI知识库的任督二脉-ACL权限控制

| 什么是 ACL?

ACL = Access Control List。

大白话就是:这个文件夹,谁能进,谁能看,谁能改。

NAS 上的 ACL 可以精确到单独给某个目录、某个用户设置权限,不像传统的"所有者/分组/其他人"那么粗。

这三个应用都跑在 Docker 容器里,默认情况下:

  • Hermes 的用户 ID 是 10000

  • OpenClaw 的用户 ID 是 1000

  • Obsidian 的用户 ID 是 0(root)

  • 我的用户 ID 也是 0(root)

10000、1000、0 这个 ID 的数字就是系统区分用户的唯一标识。

我们要做的就是,通过 ACL,给这 4 个用户都配一把能读写"/volume1/AgentShared"目录的钥匙。

如果你不确定某个容器的用户ID,最好进入容器的/bin/bash终端,输入 whoamiid 命令查一下。

比如我现在查一下 Hermes 的用户 ID,查到 Hermes 的 uid=10000。

打通AI知识库的任督二脉-ACL权限控制

把其他容器的用户 ID 也查好,等会儿要用。


| 配置 ACL 权限

!这个操作要用到最高权限修改 NAS 目录和文件,是危险操作。请确认你对输入的任何命令都非常了解,并能够承担相应的后果,否则不要继续进行。

绿联没有给直接操作 ACL 的界面,所以我们需要从终端(比如 Windows 的 PowerShell 或其他命令行工具,后面我用 PowerShell 演示),通过 SSH 连接我们的 NAS。

在 NAS 中启用 SSH 服务,并通过 SSH 连接 NAS

绿联在 控制面板-终端机-SSH 位置启用,启用后点击应用

打通AI知识库的任督二脉-ACL权限控制

确保我们的操作终端和 NAS 在同一内网下。

进入 PowerShell ,输入 ssh NAS 的 IP 地址,回车。
(比如,NAS 的内网地址是 192.168.33.143,就输入 ssh 192.168.33.143)

在要求输入密码时,输入你登入 NAS 时的密码,回车。
(注意:为了保护隐私,密码不会显示,放心输入后回车就行)

然后看到你的 NAS 型号,说明已经进入到 NAS 了。

(yourname 代表你的用户名,以你实际用户名为准,后面都这样演示)

PS C:Usersyourname> ssh 192.168.31.143 yourname@192.168.33.143's password: yourname@DX4600-B572:~$

提高权限

因为后续操作需要最高权限,为了方便,我们通过 sudo -i 命令直接提前获取最高权限。

yourname@DX4600-B572:~$ sudo -i [sudo] password for yourname: root@DX4600-B572:~#

为协作目录设置权限

现在我们为之前创建好的"/volume1/AgentShared"设置权限。
(注意:目录路径要查对)

将这个目录的所有者设置为root

sudo chown root:root /volume1/AgentShared

(我和 Obsidian 的用户权限本来就都是 root,所以这样设置后,等下只需要给 Hermes 和 OpenClaw 设置读写权限就行了)

现在给 Hermes、OpenClaw 设置读写权限。

# 1. 为 hermes (uid=10000) 和 openclaw (uid=1000) 设置当前目录的读写执行权限 sudo setfacl -m u:10000:rwx /volume1/AgentShared sudo setfacl -m u:1000:rwx /volume1/AgentShared # 2. 设置默认 ACL,确保在此目录下新建的文件/文件夹也自动继承这些权限 sudo setfacl -d -m u:10000:rwx /volume1/AgentShared sudo setfacl -d -m u:1000:rwx /volume1/AgentShared

第 2 步很重要,很多人会漏掉,最后发现新文件又没权限了。
输入后没有回应,应该就是成功了。

我们来验证一下:

getfacl/volume1/AgentShared

输入后,你会看到下面的结果:

# file: volume1/AgentShared # owner: root # group: root user::rwx user:10000:rwx user:1000:rwx group::r-x mask::rwx other::r-x default:user::rwx default:user:10000:rwx default:user:1000:rwx default:group::r-x default:mask::rwx default:other::r-x


| 为什么不用 chmod 777?

可能有朋友会问:直接 chmod -R 777 不就完事儿了吗?

千万! 别! 这么干!

chmod -R 777 相当于把目录的"大门"向所有用户敞开,任何人都能读、能改、能删。这在多人协作的环境下是极其危险的操作——你永远不知道谁会不小心(或者故意)把你的知识库文件给删了。

而 ACL 可以精确控制:只有指定的 AI 助手能访问这个目录,其他人一概不行。哪个更安全,一目了然。


| 设置好之后有多爽?

配好之后,你就能真正实现"统一知识库"了:

人在外面,突然想到一个知识点,直接让 AI 助手帮你记到知识库。
回家打开 Obsidian,最新一条笔记已经在里面了。

在 Obsidian 里手动加了标签,AI 助手下次搜索的时候能自动关联到。

不管从哪个入口进去,看到的都是同一份内容。


Q: 配了 ACL 还是不行?

A: 检查两件事:

  1. 文件系统是否支持 ACL。ntfs/exfat 文件系统不支持。

  2. ACL 是否应用到子项目。


别让权限问题阻止你搭建 AI 知识库。

按照上面的步骤:

  1. 查清楚各容器的用户 ID

  2. 用 setfacl 设置权限

  3. 用 getfacl 验证

  4. 尽情享受成果吧

一次配好,后面就省心了。

让你的每个 AI 助手和 Obsidian 共同管理一个知识库,从现在开始。


坚持创作有深度、高质量的作品、致力于分享干货、抵制标题党和网络垃圾,是我的座右铭。

您的支持对我真的很重要O(∩_∩)O)。如果你我志趣相投,就帮赏个免费的关注和赞呗。让我们共同打造互联网内容创作和知识分享的一股清流!ヾ(◍°∇°◍)ノ゙

展开 收起
2评论

  • 精彩
  • 最新
  • 看起来不错,回家用铁威马nas部署一下,TOS系统更适合不是docker

    校验提示文案

    提交
    不错呦

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
4
扫一下,分享更方便,购买更轻松