如何保留将文件和目录从一个 Linux 迁移到另一个 Linux 的权限

如何保留将文件和目录从一个 Linux 迁移到另一个 Linux 的权限

我需要使用 tar 将文件和目录从一台计算机迁移到另一台计算机。我想使用 tar 或类似的东西。但我没有root权限。据我所知“要提取文件权限和所有权,您需要在提取时以 root 身份运行 tar,因为更改文件所有权通常需要超级用户权限。”https://superuser.com/questions/838392/how-to-tar-a-directory-preserving-not-only-permissions-but-ownership-too

真实情况:

mvbat我们有主目录的帐户/home/mvbat。在此目录中,有具有不同权限的子目录和文件,有些可执行,有些则不可。

我们面临着从旧的RedHat6迁移到新的RedHat8的任务,但是管理员施加了限制。

作为开发团队,我们不被允许用于rsync迁移。

答案1

你尝试过吗?

要更改文件所有权,您需要 root 权限(自然),但没有 root 权限也可以保留权限。

如果“接收”tar 与运行它的 uid 不同,则您的“接收”tar 将无法更改文件所有权,但它将尽职尽责地保留权限(请注意,可能会应用 umask 设置,为了避免这种情况,请使用以下-p选项或在解压之前将 umask 更改为0)。

答案2

要在将文件和目录从一台 Linux 计算机迁移到另一台 Linux 计算机时保持权限,可以使用带有 -a(存档)选项的 rsync 命令。此选项保留文件的各种属性,包括权限、所有权、时间戳和符号链接。

以下是您可以使用的示例命令:

基本副本

rsync -a /path/to/source/ user@remote:/path/to/destination/

在此命令中,将 /path/to/source/ 替换为要迁移的目录的路径,并将 user@remote:/path/to/destination/ 替换为目标服务器的主机名或 IP 地址(您的用户名)用于连接到远程服务器,以及目标目录的路径。

请注意,您需要具有对远程服务器的 SSH 访问权限,并且在运行命令之前目标目录必须存在于远程服务器上。

答案3

如果您可以物理访问两台计算机,请使用具有 ext 类型 FS 的外部驱动器。

cp -a将保留所有相关信息。

相关内容