所以我有一台运行 macOS Catalina(基于 Unix 兼容的 BSD)的 MacBook。
我正在购买一台新 Mac,我想将很多照片和其他位(如 GPG 密钥、SSH 密钥等)复制到外部硬盘驱动器,然后当我的新机器到货时,将文件复制到同一个机器。
当前文件如下所示:
.rw-r--r-- 1 312 john staff 13 Dec 2019 gpg.keys
如果我将它复制到一个外部磁盘cp -a
(实际上是cp -pPR
),然后复制到新的 MacBook(复制到同名的同一个主文件夹,假设我john
在我的新机器上设置了一个用户),一切都会好起来的权限,或者从权限的角度来看,这两个john
用户是否“不兼容”。
也许我过于复杂了,但我想确保文件具有正确的权限......
也许还有一个例子,如果我将具有权限的文件John
从本地机器复制到外部 FAT32 驱动器,然后返回到Dave
新机器上的用户,如何cp
处理?
你可以这样做。两个 John 帐户需要相同的 UID。在旧机器中查找 UID(在 /etc/passwd 第一个字段中,john 后面有数字),然后使用 john 和相同的 UID 设置新计算机。假设我们发现 john 在旧计算机上的 uid 为 1234。将 ID 为 1234 的用户 john 添加到新计算机
您可以做的另一件事是不必匹配 UID,当文件以 root 身份到达新计算机时,执行递归 chown 以将文件所有者设置为新的 john。然后您不必匹配两台计算机中的 UID。
任何一种方法都可以工作并给你相同的结果。
关于你的第二个问题。当您复制 (cp) 文件时,所有者将更改为复制它的用户。如果您移动 (mv) 文件,则属性和所有者保持不变。因此,如果您将文件复制为 dave,那么要回答您的问题,它将拥有所有者 dave。如果您移动文件,它将保留原始所有者 john.
如果您以 root 身份复制文件,则 root 将拥有它们。
请注意,UID 是控制文件所有权的东西。测试你可以做