我需要使用 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
将保留所有相关信息。