我现在明白,我不能泄露文件,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.tar
或xz ~/myarchive.tar
等)
到提取你的文件:
tar --same-owner xpf ~/myarchive.tar
作为普通用户,这将提取当前文件夹中的文件,权限将保留,但用户所有权将丢失,如果您不属于该组,则可能会丢失组所有权。
但要正确设置所有权限和所有权,您需要通过调用此命令sudo
或以具有足够权限的用户(通常是 root)身份执行它。
PS:如果在 Linux 上并使用 GNU tar,您还可以保留一些元数据,例如 ACL、xattr 或 SELinux。但是您需要使用特殊标志来让 tar 知道您也希望存档这些数据。请参阅GNU tar 文档。