Squid 的助手能看见模块,但它能读到吗?
更新后 Squid 助手报告模块缺失时,检查服务权限与有效组。
在把 Squid 账户加入另一个组之前,请检查 cache_effective_group。在 Squid 5–7 中,默认使用有效用户的主组和附加组。显式覆盖会让 Squid 忽略其他组的权限,因此你刚加入的成员关系可能永远到不了它的助手进程。
这是 Perl 模块存在于磁盘上却加载失败的一种情形。在实际的加载器错误中要区分三个原因:依赖不存在、依赖位于解释器的搜索路径之外,或者服务无法读取它。
以助手的运行时身份比较该模块及其每个父目录。解释器需要目录穿越和文件读取权限,而不只是最终文件名可读。更新之后,软件包提供的属主或权限默认值可能与之前可用的安排不同。
选择与服务账户和有效组设置相符的最小权限授予。读取一个依赖并不需要让整个应用目录树对代理可写。组变更后,通过受支持的服务生命周期重建受影响的进程;已有进程可能仍保留旧的组成员关系。
如果搜索路径和普通权限都一致,就检查服务看到的文件系统视图以及强制访问控制的证据。root shell 能成功加载模块,并不能证明助手具备上述任一条件。