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

这里是如何演示这个问题:

  1. 在OSX抓取terminal,并运行

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

    这是关于文件夹“abc”的输出:

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

    团体名称可以被视为“员工”。

  2. rsync从远程服务器到文件夹“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”中创build一个文件并检查其组名,

     $ touch def $ ls -l ~/abc -rw-r--r-- 1 justin _lpoperator 0 Jan 4 20:28 def 

我知道当我使用rsync的-a选项时,它将尝试保留该远程文件的权限,但是为什么创build了_lpoperator? 这真的很奇怪,有什么想法?

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

所以,当rsync进行传输时,它会保存来自远程文件的gid。 那个gid映射到你的机器上的_lpoperator组,所以当你运行'ls'的时候,你会发现组更改了。