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

Ubuntu下指定自定义根目录后无法保存chkrootkit命令输出怎么办

问题原因

Ubuntu 20.04 默认软件源中搭载的 chkrootkit 0.53-1 版本存在已知的路径拼接bug:当使用 -r 参数指定替代根目录,且命令输出目标不是终端(即重定向到文件、管道等场景)时,脚本内部处理 lastlog 文件路径的逻辑会重复拼接你指定的根目录前缀,因此会出现你遇到的 /vol//vol/var/log/lastlog 错误路径。
直接运行命令时输出到终端,不会触发这个bug的分支逻辑,所以运行正常;不带 -r 参数时不需要做根目录路径拼接,因此重定向也不会报错。

解决方法
  • 方法1:手动指定LASTLOG环境变量
    chkrootkit 会优先读取环境变量中的LASTLOG路径,直接指定其相对于替代根目录的路径,即可避免错误的自动拼接:
    sudo LASTLOG=/var/log/lastlog chkrootkit -r /vol > /home/ubuntu/test.txt
    
  • 方法2:通过子shell执行完整命令
    把 chkrootkit 执行和输出重定向逻辑都放到 root 权限的子shell中运行,也可绕过错误的路径拼接逻辑:
    sudo sh -c 'chkrootkit -r /vol > /home/ubuntu/test.txt'
    
  • 方法3:通过tee命令中转输出
    用管道把输出传递给tee命令写入文件,如果你不需要同时在终端显示输出,可在末尾添加> /dev/null:
    # 仅保存到文件,终端不输出
    sudo chkrootkit -r /vol | sudo tee /home/ubuntu/test.txt > /dev/null
    # 终端同步显示输出,同时保存到文件
    sudo chkrootkit -r /vol | sudo tee /home/ubuntu/test.txt
    
  • 方法4(永久修复):升级chkrootkit到0.55及以上版本
    该路径拼接bug已经在0.55及以上版本的chkrootkit中修复,升级后就可以正常使用原生的重定向语法。

内容的提问来源于stack exchange,提问作者Idan Rotbart

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:01