2010-09-20 28 views
5

Như được hiển thị bởi rpm -qi package?Có cách nào để có được ID khóa chữ ký của RPM được cài đặt theo chương trình không?

Tôi không thực sự muốn phân tích đầu ra của rpm -qi. Tôi muốn sử dụng nhiều hơn rpm -q --qf, trong đó tôi có thể kiểm soát định dạng và không phải tuân theo ý tưởng thẩm mỹ của phiên bản trong tương lai.

Nhưng thẻ hữu ích duy nhất tôi có thể tìm thấy trong trang người đàn ông là SIGPGP, nó mang lại cho tôi toàn bộ chữ ký, không chỉ là id khóa ngắn. Xem sự khác biệt:

$ rpm -qi coreutils 
Name  : coreutils     Relocations: (not relocatable) 
Version  : 8.4        Vendor: Fedora Project 
Release  : 8.fc13      Build Date: Tue 20 Jul 2010 05:21:15 AM BRT 
Install Date: Tue 03 Aug 2010 01:58:53 PM BRT  Build Host: x86-17.phx2.fedoraproject.org 
Group  : System Environment/Base  Source RPM: coreutils-8.4-8.fc13.src.rpm 
Size  : 12659257       License: GPLv3+ 
Signature : RSA/SHA256, Tue 20 Jul 2010 03:14:09 PM BRT, Key ID 7edc6ad6e8e40fde 
Packager : Fedora Project 
URL   : http://www.gnu.org/software/coreutils/ 
Summary  : A set of basic GNU tools commonly used in shell scripts 
Description : 
These are the GNU core utilities. This package is the combination of 
the old GNU fileutils, sh-utils, and textutils packages. 

$ rpm -q --qf '%{NAME}\t%{VERSION}\t%{RELEASE}\t%{ARCH}\t%{EPOCH}\t%{SIGPGP}\n' coreutils 
coreutils  8.4  8.fc13 i686 (none) 8902150305004c45e7717edc6ad6e8e40fde010824c50fff6af998d5b67a663e6c165bbb3ff888afbe0961b7a60bab3d9a1605b271bbfaccc2eda4bc121e7bc8300efa0208100eb0961c021db2f0be52d422d21c0906a3252df125454fd4886af63574ed729c1370f583c0d46e4a97ee007b72966d965eed1891aaacf296ba31cb44fb46a20c5b39031b79c4eff66948aa3e79090a5f1ce969d3319ebbd47ff38ef382c64c1d59ba5c4d40b3d31a02620bd26005910ca98b7115ac24a30c2198f194bebb2347041ea094be23f5af2e6bb397736e8aff0dd95b4ebd2301ce00663180bbcf214559c72bc74a902102cdb2485b60c78e90c07ed76ecc78d44fd2ec710eb59937e513a37383b5f79a9a1a3996b614a8c1dc81eb8bd468b24aeceac378ee2da659978b5ebe7ab8b52ddb9342e45b2aa5d7b46c40904b57fd6e5ecf26e651c0dce46edb65ef54d26b73fbe99ac5757648c2e509e00887bb1373d30202a30e978407d9db3426d1f468ed4f88f3b379b14ac74b98167860fa36adc0768d6f33958e17c08a896f5aadcb6b70ce2c104454ab4d5b2e6166de465905d8aac14d5257324d50d78e9dc0b3836adc0817eacf5cd026e53330afefe24c6ad549d29b46f9bef544abfa4a87c66fc64c5281b453f72b3c6e660098c856d18031abb725792788ca6061603046170bfdfffb7772ee55299a2f92c996cd140470dba1b99f3c8e5e4a4f7c159fd0fae3fd1854335615e577fb5d05f5 
+0

lập trình trên ngôn ngữ gì? * gói rpm -qi | grep "ID khóa" | cut -d '' -f15 * – karlphillip

Trả lời

2

Để trả lời câu hỏi thực tế, không, không có cách nào để truy vấn trực tiếp cho keyid. Tôi chạy vào cùng một vấn đề mà bạn đang gặp phải và đã tìm thấy một người nào đó thực sự đã tạo một bug report with redhat cho một tính năng để yêu cầu thêm tính năng đó.

Trong báo cáo lỗi, responder nói đến sử dụng giống như dưới đây:

rpm -q --qf "%|DSAHEADER?{%{DSAHEADER:pgpsig}}:{%|RSAHEADER?{%{RSAHEADER:pgpsig}}:{(none}|}| %{NVRA}\n" emacs | cut -d' ' -f11 
1

Bất kỳ lý do nào bạn không thể cắt phần có liên quan của SIGPGP bằng cách cắt? Tôi mạnh mẽ nghi ngờ nó nằm ở cùng một bù đắp trong mỗi tiêu đề rpm, nhưng bạn có lẽ nên kiểm tra RPM từ nhiều nguồn chỉ để chắc chắn.

+0

Bây giờ bạn nhắc đến, nó ở đó! Nhưng điều này có hợp lệ cho mọi loại khóa có thể, ở cùng mức bù không? – JCCyC

+0

Một số RPM có SIGPGP, các RPM khác có SIGGPG. Mức chênh lệch cho một dường như là 20 và tương ứng là 36. Hoặc có thể sự khác biệt là bởi vì một là RSA/SHA256 và một là DSA/SHA1. – JCCyC

+0

Nếu bạn thực sự muốn đi theo con đường đó, [this] (http://www.rpm.org/max-rpm/s1-rpm-file-format-rpm-file-format.html#S2-RPM-FILE -FORMAT-HEADER) sẽ hiển thị cho bạn định dạng tệp rpm, phần Chữ ký là dữ liệu bạn đang xem. – vincentleest

Các vấn đề liên quan