如果我更改 tar 文件的权限,这是否会应用于其中的文件?

如果我更改 tar 文件的权限,这是否会应用于其中的文件?

我有一个定期通过 运行的脚本cron,它创建一个tar.gz用于备份目录的文件。

由于我无法控制的原因,唯一可以执行脚本的用户cron是 root 用户。因此tar任何其他用户都无法移动或删除生成的文件。

因此,作为脚本的一部分,我想在文件上执行chownand以便其他用户可以操作它。chmodtar

但是,仅更改tar文件的权限就足够了,还是根用户权限也会保存到 中的文件中tar?当用户解压tar文件时,他们是否能够像他们自己创建文件一样对这些文件进行操作?

答案1

如果提取的用户是“普通”用户,则文件将归该用户所有(默认情况下)。

来自 tar 的手册页

--same-owner
       try extracting files with the same ownership as exists in the archive (default for superuser)

--no-same-owner
       extract files as yourself (default for ordinary users)

答案2

简短回答:不。

tar实用程序专门用于在类 UNIX 系统下归档目录结构。它保留所包含文件/目录的所有所有权和权限信息。无论用户运行该tar命令如何。

至少这是标准调用的情况。但我认为,如果您要执行任何tar可能更改权限处理的高级选项,您就不会问这个问题:)

1一个例外:常规tar不保留 SELinux 设置或 acl。您需要star或最新版本来tar保留这些内容。也可以看看http://magazine.redhat.com/2007/07/02/tips-from-an-rhce-tar-vs-star-the-battle-of-xattrs/。如果备份的文件具有任何扩展属性,您可能需要考虑这一点。

相关内容