Вот как продемонстрировать проблему:
Возьмите терминал в OSX и запустите
cd ~ && mkdir abc && ls -l ~/
Вот вывод о папке «abc»:
drwxr-xr-x 2 justin staff 68 Jan 4 20:20 abc
Название группы можно увидеть как «персонал».
rsync файл или папку с удаленного сервера в папку «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
Я знаю, что когда я использую параметр -a для rsync, он попытается сохранить разрешение для этого удаленного файла, но почему был создан _lpoperator? это действительно странно, есть идея?
Это происходит потому, что вы используете -a
вариант для rsync. Один параметр, который включает '-a', - '-g', сохранить группу. Папка или файл, который вы переносите с удаленного компьютера, принадлежит идентификатору группы (gid) 100. На вашем компьютере gid 100 - это '_lpoperator'. Вы можете проверить это, запустивgrep _lpoperator /etc/group
. Это покажет фактический идентификатор группы 100.
Итак, когда rsync выполняет передачу, он сохраняет gid из удаленного файла. Этот gid сопоставляется с группой _lpoperator на вашем компьютере, поэтому вы видите, что группа изменяется, когда вы запускаете ls.