Назад | Перейти на главную страницу

rsync в OS X изменяет имя группы папки на _lpoperator

Вот как продемонстрировать проблему:

  1. Возьмите терминал в OSX и запустите

    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" и проверьте его название группы,

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

Я знаю, что когда я использую параметр -a для rsync, он попытается сохранить разрешение для этого удаленного файла, но почему был создан _lpoperator? это действительно странно, есть идея?

Это происходит потому, что вы используете -a вариант для rsync. Один параметр, который включает '-a', - '-g', сохранить группу. Папка или файл, который вы переносите с удаленного компьютера, принадлежит идентификатору группы (gid) 100. На вашем компьютере gid 100 - это '_lpoperator'. Вы можете проверить это, запустивgrep _lpoperator /etc/group. Это покажет фактический идентификатор группы 100.

Итак, когда rsync выполняет передачу, он сохраняет gid из удаленного файла. Этот gid сопоставляется с группой _lpoperator на вашем компьютере, поэтому вы видите, что группа изменяется, когда вы запускаете ls.