OS X 上的 rsync 将文件夹的组名更改为 _lpoperator

OS X 上的 rsync 将文件夹的组名更改为 _lpoperator

以下是演示该问题的方法:

  1. 在 OSX 上获取终端,然后运行

    cd ~ && mkdir abc && ls -l ~/
    

    以下是有关文件夹“abc”的输出:

    drwxr-xr-x   2 justin  staff    68 Jan  4 20:20 abc
    

    群组名称可见为“staff”。

  2. 将文件或文件夹从远程服务器同步到文件夹“abc”:

    rsync -aP -v -z -h username@server:/mnt/foo/ ~/abc/
    
  3. 再次检查文件夹“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

发生这种情况是因为您正在使用-arsync 选项。'-a' 打开的一个设置是 '-g',保留组。您从远程计算机传输的文件夹或文件归组 ID (gid) 100 所有。在您的计算机上,gid 100 是“_lpoperator”。您可以通过运行来验证这一点grep _lpoperator /etc/group。这将显示实际的组 ID 100。

因此,当 rsync 进行传输时,它会保留远程文件的 gid。该 gid 会映射到您机器上的 _lpoperator 组,因此当您运行“ls”时,您会看到该组发生变化。

相关内容