压缩文件而不改变其所有权

压缩文件而不改变其所有权

我现在明白,我不能泄露文件,chown因为我是普通用户,而不是具有 root 权限的用户。现在我的问题是我有一大堆具有写入权限的文件,但我不是 root。但仍受到空间问题的影响。

现在我可以获取zip文件了,但是当我压缩文件的那一刻,我就成为了文件的所有者。压缩后,我仍然希望所有者是创建该文件的人,而不是我。有什么办法可行吗?

答案1

如果使用,tar您可以保留文件的所有权。但是,除非您在从 tar 文件中提取文件时是 root 用户,否则如果您没有权限,则所有权将不会恢复。
请注意,tar 不压缩,它仅归档。

作为额外的好处,tar将保留文件和目录的权限。

使用 tar 并确保保留所有所有权和权限:

tar cpf ~/myarchive.tar folder_to_archive

(注意 tar 也存储相对或绝对路径。如果您是标准用户,在提取时,tar 会相对于当前文件夹提取文件。但是如果您是 root 并且使用绝对路径,tar 会提取它们使用绝对路径,可能会覆盖现有文件。请阅读 tar 文档和教程,了解有关绝对或相对路径的所有可能性。)

(您可以选择使用任何压缩工具来压缩 tar 存档。示例:gzip ~/myarchive.tarxz ~/myarchive.tar等)

提取你的文件:

tar --same-owner xpf ~/myarchive.tar

作为普通用户,这将提取当前文件夹中的文件,权限将保留,但用户所有权将丢失,如果您不属于该组,则可能会丢失组所有权。

但要正确设置所有权限和所有权,您需要通过调用此命令sudo或以具有足够权限的用户(通常是 root)身份执行它。

PS:如果在 Linux 上并使用 GNU tar,您还可以保留一些元数据,例如 ACL、xattr 或 SELinux。但是您需要使用特殊标志来让 tar 知道您也希望存档这些数据。请参阅GNU tar 文档

相关内容