2012-04-06 55 views
1

我试图备份机器的一些关键文件和目录,包括一些/ home数据,以root身份,手动选择一些文件以减少tarball的大小。一切都在很大程度上确定,因为大多数文件由根反正所有,但说我只是试试这个:`tar/home/user/file`是否将/ home所有者更改为root?

# tar -cf backup.tar /home/user/file 

当我恢复的内容,/ home/user中/文件是否如预期由用户自备,但/ home/user由root拥有。我试过了,但是,

# tar -cf backup.tar /home 

,并在这种情况下,所有/业主将被保留。 (请注意,我不需要-p标志,因为我是root用户,但我仍尝试过......)

这是正常行为吗?如果是这样,是否有办法在保留/房屋所有权信息的同时手动选择常规用户文件进行备份?我的目标是简单地从/解开所有内容。

谢谢!

+0

这与编程无关。这更适合超级用户或unix stackexchange站点。 – 2012-04-06 11:49:17

回答

2

要正确设置目录权限,tarball需要包含这些目录的条目,因此您需要将它们添加到tarball。

当你创建一个只包含/home/user/file,而不是/home/user一个压缩包,有则没有关于/home/user在压缩包的权限信息,所以tar不知道该怎么办。它自动创建目录,但没有权限,所有者或组给他们,所以他们得到默认值。

您可以添加目录以及:

# tar -cf backup.tar --no-recursion /home/user /home/user/file 

但是这可能不会让你的东西任何简单。请注意0​​- 它告诉tar不要在目录下添加everthing,只是目录本身。如果您想实际添加直接树,则必须使用find(1)手动将该目录下的每个文件传递给它。那会很快变得丑陋。

请记住,我们正在讨论备份和恢复特定文件。如果你永远不会恢复,那么你可能还会创建unix账户来恢复,如果他们不在那里。所以至少不需要在主目录上设置权限。那些子目录也不能这样说。

+0

谢谢!我认为这应该工作。请注意:据我所知,在创建用户帐户后,我只能使用cp -a/tarred/dir/*/*,这正是破坏目录所有权的操作。如果我之前尝试过,它会拒绝useradd -m。 – 2012-04-06 12:08:00

+0

你让我深入了解手册页面......它看起来像使用--no-overwrite-dir恢复也可以提供帮助! – 2012-04-06 12:14:53

相关问题