打通AI知识库的任督二脉-ACL权限控制
大家好啊,我是执着于持续分享数码家电、软件技巧相关知识,坚持创作有深度、高质量作品的博主 醉雪梅花。期待您的关注。
你在使用 NAS 部署的 Obsidian 和 AI 助手时,有没有遇到过这种情况:
在 Obsidian 里记的笔记,AI 助手读不到。
让 AI 助手写入知识库的内容,Obsidian 里看不到。
两个地方各管各的,完全没法同步。
是不是每次新建一个笔记,AI 助手都读不到?
如果你有,这篇文章就是专门为你写的。
| 这个"任督二脉"是什么?
我在绿联 NAS DX4600 里,通过 Docker 部署有两个 Ai 助手:Hermes 和 OpenClaw,还有一个笔记管理应用 Obsidian。
还记得上篇文章我们提到的,用 AI 助手自动管理知识库,用 Obsidian 手动查看 吗?
我创建了一个共享文件夹,路径是"/volume1/AgentShared"。

我的设想很理想:
我把我的知识库和需要协作的文件都放在这个目录下,这样,Hermes 和 OpenClaw 可以通过这个目录进行文件协作,Obsidian 也可以直接把仓库挂载到这个目录,方便手动查看和编辑。
但现实很残酷:
等我部署完后,发现频繁弹出权限问题:Hermes 创建的文件,OpenClaw 和 Obsidian 没有权限读取;我在文件夹里创建的文件,它们三个都无权读取。这给我干不会了,这不是闹着玩呢。

后来我想明白了——三个应用住在不同的"容器"里,各有各的"办公室",各管各的文件。现在我给他们发了一间"会议室",但是,没给他们配一把共同的会议室钥匙啊。
这把共同的钥匙,就是 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终端,输入 whoami 和 id 命令查一下。
比如我现在查一下 Hermes 的用户 ID,查到 Hermes 的 uid=10000。

把其他容器的用户 ID 也查好,等会儿要用。
| 配置 ACL 权限
!这个操作要用到最高权限修改 NAS 目录和文件,是危险操作。请确认你对输入的任何命令都非常了解,并能够承担相应的后果,否则不要继续进行。
绿联没有给直接操作 ACL 的界面,所以我们需要从终端(比如 Windows 的 PowerShell 或其他命令行工具,后面我用 PowerShell 演示),通过 SSH 连接我们的 NAS。
在 NAS 中启用 SSH 服务,并通过 SSH 连接 NAS
绿联在 控制面板-终端机-SSH 位置启用,启用后点击应用。

确保我们的操作终端和 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: 检查两件事:
文件系统是否支持 ACL。ntfs/exfat 文件系统不支持。
ACL 是否应用到子项目。
别让权限问题阻止你搭建 AI 知识库。
按照上面的步骤:
查清楚各容器的用户 ID
用 setfacl 设置权限
用 getfacl 验证
尽情享受成果吧
一次配好,后面就省心了。
让你的每个 AI 助手和 Obsidian 共同管理一个知识库,从现在开始。
坚持创作有深度、高质量的作品、致力于分享干货、抵制标题党和网络垃圾,是我的座右铭。
您的支持对我真的很重要O(∩_∩)O)。如果你我志趣相投,就帮赏个免费的关注和赞呗。让我们共同打造互联网内容创作和知识分享的一股清流!ヾ(◍°∇°◍)ノ゙

徘徊丛林迎着雨鸭
校验提示文案
徘徊丛林迎着雨鸭
校验提示文案