我安装了一个 Debian 软件包,升级过很多次,但其中包含的文件的权限有问题。我可能在某个时候更改了它们。
我如何确定原始权限是什么/应该是什么?我知道 dpkg -L 会列出文件,但该列表不包括权限。我没有多余的机器可以测试,否则这会非常简单。
答案1
使用 'dpkg -c' 命令显示原始存档的内容。您应该拥有最新版本的软件包/var/cache/apt/archives
。如果您的存档目录中没有 .deb,您可以使用 aptitude 下载来检索它。
aptitude download <some_package>
dpkg -c some_package.deb
例如使用 grep 命令(输出被截断,您会明白的:))。
$ aptitude download grep
...
Get:1 http://us.archive.ubuntu.com karmic/main grep 2.5.4-4 [224kB]
$ dpkg -c grep_2.5.4-4_i386.deb
drwxr-xr-x root/root 0 2009-04-28 05:03 ./
drwxr-xr-x root/root 0 2009-04-28 05:03 ./usr/
drwxr-xr-x root/root 0 2009-04-28 05:03 ./usr/bin/
-rwxr-xr-x root/root 30 2009-04-28 05:02 ./usr/bin/rgrep
当然,列出的路径是相对于 / 的。