![RHEL 기반 컴퓨터에서 gpg 검사가 올바른지 어떻게 확인합니까?](https://linux55.com/image/43920/RHEL%20%EA%B8%B0%EB%B0%98%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C%20gpg%20%EA%B2%80%EC%82%AC%EA%B0%80%20%EC%98%AC%EB%B0%94%EB%A5%B8%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%99%95%EC%9D%B8%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
"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
스크립트에 넣어주시면 됩니다.