You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 10下执行update-ca-certificates时移除所有证书/符号链接的问题求助

Debian 10下执行update-ca-certificates时移除所有证书/符号链接的问题求助

看起来你遇到的这个问题确实挺闹心的——正常的证书更新流程居然把现有证书的符号链接批量移除,还冒出一堆莫名其妙的find: ‘test’: No such file or directory错误,常规的配置检查和重装操作都没解决,那咱们得从一些更隐蔽的地方排查:

  • 检查update-ca-certificates核心脚本的完整性
    这个命令本质是一个shell脚本,路径在/usr/sbin/update-ca-certificates。你可以先直接查看脚本内容:

    cat /usr/sbin/update-ca-certificates
    

    重点找有没有莫名其妙的find命令调用(尤其是涉及test目录的),正常脚本里绝对不会出现这种无厘头的查找。另外也可以用dpkg验证包文件的完整性,看看这个脚本是不是被篡改过:

    dpkg -V ca-certificates
    

    如果输出里有/usr/sbin/update-ca-certificates的记录,说明这个文件被修改过,那直接重新覆盖安装包就能解决:

    apt-get install --reinstall ca-certificates
    
  • 排查/etc/ca-certificates/update.d/下的钩子脚本
    你输出里提到了Running hooks in /etc/ca-certificates/update.d...,这个目录下的所有脚本都会在证书更新流程中被执行,很可能是某个钩子脚本出了问题——比如写错了find命令,或者错误地执行了删除符号链接的操作。
    先列出所有钩子脚本:

    ls -l /etc/ca-certificates/update.d/
    

    然后逐个查看脚本内容,重点找有没有涉及test目录的find调用,或者对/etc/ssl/certs目录的批量删除操作。如果找到异常脚本,可以先临时重命名它(比如加.bak后缀),再重新执行update-ca-certificates试试。

  • 检查环境变量的干扰
    有时候异常的环境变量会改变命令的行为,比如find命令的默认参数被篡改了。你可以先查看当前环境里有没有和find相关的变量:

    env | grep -i find
    

    如果有奇怪的变量(比如FIND_OPTS之类的),可以先清空环境变量再执行命令试试:

    env -i update-ca-certificates
    

    如果这样执行就正常了,说明是某个环境变量在搞鬼,找到它并删除即可。

  • 搜索系统中涉及find.*test的可疑命令
    那些find: ‘test’: No such file or directory的错误说明,肯定有某个脚本里执行了find命令并指定了test作为目标目录。你可以用全局搜索快速定位:

    grep -r "find.*test" /usr/sbin/update-ca-certificates /etc/ca-certificates/ /usr/share/ca-certificates/
    

    找到对应的位置后,就能直接定位问题根源。

  • 验证证书目录的权限和完整性
    最后再确认一下关键目录的权限是否正常:

    ls -ld /usr/local/share/ca-certificates /etc/ssl/certs
    

    正常情况下这些目录应该是root:root所有,权限为755。如果权限不对,会导致脚本无法正确读取证书或创建符号链接,进而误判为“孤儿链接”进行删除。

备注:内容来源于stack exchange,提问作者KellyM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:42:33