如何显示 rpm 内部内容的文件权限

how do I display file permissions of rpm internal contents

我想查看 rpm 安装后 "have" rpm 中的文件的权限。但无需安装 rpm。

这是一种显示权限的方式 "like ls does":

 $ rpm -q --qf "[%-15{=NAME} %-36{FILENAMES} %{FILEMODES:perms}\n]" -p $FILENAME
 FILENAME            /etc/pam.d/sudo                      -rw-r--r--
 FILENAME            /etc/file/name/here                  -rw-r--r--
 ....

ref

rpm--dump 选项为您提供此信息(以及其他信息)。

rpm -qp --dump "$RPM_PACKAGE_FILENAME"

我就用less。 ;) 它以 ls 形式显示权限。

在基于 RedHat 的发行版中,它似乎将其传递给 rpm -qpivl --changelog(通过 /usr/bin/lesspipe.sh

在 CentOS 6 和 7 上,将 -l-v 选项添加到 -qp 似乎就足够了:

$ rpm -qpl golang-vet-0-1.0.hgd32b5854c941.el7.x86_64.rpm
/usr/bin/vet
/usr/lib/golang/pkg/tool/linux_amd64/vet
$ rpm -qplv golang-vet-0-1.0.hgd32b5854c941.el7.x86_64.rpm
-rwxr-xr-x    1 root    root                  5764251 Aug 21  2014 /usr/bin/vet
lrwxrwxrwx    1 root    root                       12 Aug 21  2014 /usr/lib/golang/pkg/tool/linux_amd64/vet -> /usr/bin/vet
$ rpm --version
RPM version 4.11.3

注意:这与 muru 提供的解决方案相同(只是确认它也适用于 MacOS brew install rpm

也适用于 MacOS(通过 brew 安装的 rpm)

$ rpm --version
RPM version 4.14.0

$ rpm -qvlp <rpm-packagename>