以下是演示该问题的方法:
在 OSX 上获取终端,然后运行
cd ~ && mkdir abc && ls -l ~/
以下是有关文件夹“abc”的输出:
drwxr-xr-x 2 justin staff 68 Jan 4 20:20 abc
群组名称可见为“staff”。
将文件或文件夹从远程服务器同步到文件夹“abc”:
rsync -aP -v -z -h username@server:/mnt/foo/ ~/abc/
再次检查文件夹“abc”的组名:
$ ls -l ~/ drwxr-xr-x 2 justin _lpoperator 68B Jan 4 19:44 abc
并且“abc”中的所有文件,组名都是 _lpoperator。尝试在“abc”中创建一个文件并检查其组名,
$ touch def $ ls -l ~/abc -rw-r--r-- 1 justin _lpoperator 0 Jan 4 20:28 def
我知道当我对 rsync 使用 -a 选项时,它会尝试保留该远程文件的权限,但为什么要创建 _lpoperator 呢?这真的很奇怪,有什么想法吗?
答案1
发生这种情况是因为您正在使用-a
rsync 选项。'-a' 打开的一个设置是 '-g',保留组。您从远程计算机传输的文件夹或文件归组 ID (gid) 100 所有。在您的计算机上,gid 100 是“_lpoperator”。您可以通过运行来验证这一点grep _lpoperator /etc/group
。这将显示实际的组 ID 100。
因此,当 rsync 进行传输时,它会保留远程文件的 gid。该 gid 会映射到您机器上的 _lpoperator 组,因此当您运行“ls”时,您会看到该组发生变化。