我在 tar 存档中有一个文件系统备份,创建方法是:
cd / && tar -cpz -f mybackup.tgz usr/local
做一个
tar tvzf mybackup.tgz
产量:
-rw-rw-r-- otto/otto 450 2010-04-15 22:08 usr/local/alpha-4.5/pkg/conf/PLATFORM/sparc
drwxr-xr-x otto/otto 0 2009-04-01 08:08 usr/local/alpha-4.5/pkg/ui/
drwxr-xr-x otto/otto 0 2009-04-01 08:08 usr/local/alpha-4.5/pkg/ui/src/
drwxr-xr-x otto/otto 0 2009-04-01 08:08 usr/local/alpha-4.5/pkg/ui/src/thyc/
-rw-r--r-- otto/otto 2416 2001-01-13 16:01 usr/local/alpha-4.5/pkg/ui/src/thyc/vid45
-rw-r--r-- otto/otto 569 2001-01-13 16:01 usr/local/alpha-4.5/pkg/ui/src/thyc/vid46
但是,提取如下:
tar xvpz -f mybackup.tgz
导致以下权限:
剪斷……
-rw-rw-r-- 4 otto otto 450 2010-04-15 22:08 usr/local/alpha-4.5/pkg/conf/PLATFORM/sparc
drwx------ 4 root root 4.0K 2011-03-27 23:20 usr/local/alpha-4.5/pkg/ui/
drwxr-xr-x 7 otto otto 4.0K 2009-04-01 08:08 usr/local/alpha-4.5/pkg/ui/src/
drwxr-xr-x 7 otto otto 4.0K 2009-04-01 08:08 usr/local/alpha-4.5/pkg/ui/src/thyc/
-rw-r--r-- 4 otto otto 2416 2001-01-13 16:01 usr/local/alpha-4.5/pkg/ui/src/thyc/vid45
-rw-r--r-- 4 otto otto 569 2001-01-13 16:01 usr/local/alpha-4.5/pkg/ui/src/thyc/vid46
...剪辑
注意第二行。出于某种原因,该目录现在归 root 所有,权限已更改为 700。其子级具有与其父级相同的原始权限,并且使用正确的权限创建。这只是一个摘录,这在提取的备份中随处可见。
什么原因造成此情况?
谢谢!
答案1
我觉得这像是 tar 中的一个错误。你使用的是哪个版本?如果是 GNU tar,你可以使用 来查找tar --version
。GNU tar 版本 1.24 的 NEWS 文件提到了一些与权限相关的错误的修复,这可能是问题所在。