如何检查基于 RHEL 的计算机上的 gpg 检查是否正确?

如何检查基于 RHEL 的计算机上的 gpg 检查是否正确?

如何检查“enabled=1”存储库在“/etc/yum.repos.d/”目录中是否有“gpgcheck=1”(以及“gpgkey=”文件是否存在?)?

问:我正在寻找一个解决方案来执行此操作(oneliner?),我的意思是列出所有“enabled=1”存储库和“gpgcheck”状态,以及“gpgkey=XXX”文件是否存在?- 问题是一个 .repo 文件可能包含多个存储库!

ps:据我所知,“gpgkey=XXX” -> XXX 只能是本地文件,而不是通过 http 的 url...但如果我错了,请修复我..

答案1

想不出任何简单的方法来做到这一点。将以下内容组合在一起,尽管不是特别优雅。

sed '/^\[.*\]/s,\[,\n<<[,' /etc/yum.repos.d/*.repo |
  awk '
    BEGIN { 
      RS = "\n<<"
    }
    /\nenabled=1/ && !/\ngpgcheck=1/ {
      print $1"~gpgcheck disabled for enabled repo"
    }
    /\nenabled=1/ &&  /\ngpgcheck=1/ && !/\ngpgkey=/ {
      print $1"~gpgcheck enabled for enabled repo, but missing gpgkey setting"
    }
    /\nenabled=1/ &&  /\ngpgcheck=1/ && /\ngpgkey=/ {
      print $1"~gpgcheck enabled for enabled repo, see output below for gpgkey file status"
    }
  ' | column -ts~

printf "\nChecking gpg keys for enabled repos\n"

sed '/^\[.*\]/s,\[,\n<<[,' /etc/yum.repos.d/*.repo |
  awk '
    BEGIN { 
      RS = "\n<<"
    }
    /\nenabled=1/ && /\ngpgcheck=1/ && /\ngpgkey=/
  ' |
    awk -F: /^gpgkey=/{print\$2} |
      xargs ls -l                                                                                         

将其放入脚本中即可。

相关内容