Как rsync сохраняет владение, когда uid / gid отличается? - PullRequest
0 голосов
/ 29 августа 2018

После развертывания нового сервера и переноса всего содержимого /home с использованием rsync я заметил, что владение группой и пользователями фактически сохранено, несмотря на то, что идентификаторы отличаются между двумя серверами.

В частности, я выполнил команду:

rsync -avz oldserver:/home/ /home

Хотя на новом сервере я воссоздал всех тех же пользователей и группы, у большинства из них идентификаторы отличались от старых, но каким-то образом эта команда волшебным образом сохранила правильное владение (на основе имени) и присвоила новый gid и uid где применимо. Я могу подтвердить это с помощью ls -n /home.

Как это возможно? Rsync выполняет поиск по имени?

1 Ответ

0 голосов
/ 29 августа 2018

Да, по умолчанию rsync сопоставляет владельцев и группы по имени. Подробности в документах на --numeric-ids.

- числовые идентификаторы

С помощью этой опции rsync будет передавать числовые группы и идентификаторы пользователей вместо использования имен пользователей и групп и отображать их на обоих концах.

По умолчанию rsync будет использовать имя пользователя и имя группы, чтобы определить, кому принадлежать файлы. Специальный uid 0 и специальная группа 0 никогда не отображаются через имена пользователей / групп, даже если опция --numeric-ids не указана.

Если у пользователя или группы нет имени в исходной системе или нет совпадений в системе назначения, вместо этого используется числовой идентификатор из исходной системы.

rsync предположительно использует getpwnam и getgrnam для поиска uid и gid, связанных с именами пользователей и групп.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...