如何显示 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--
....
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>
我想查看 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--
....
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>