rsync устанавливает владельца группы, разрешение группы

10

Я хочу использовать rsync для передачи файлов с моего компьютера в удаленную систему Linux. Независимо от принадлежности к группе локального файла, я хочу установить эти значения на удаленной стороне.

Если бы я был в удаленной системе Linux, я мог бы создать каталог и установить владельца и разрешения следующим образом:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Если я создаю каталог локально, а затем использую rsync (помните, у меня нет my_group локально), я делаю:

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

Это работает, но я не могу понять, как установить владельца группы с помощью rsync. Если я это сделаю chmod g+s dest, my_directory будет иметь правильного владельца группы, но все файлы внутри будут иметь неправильного владельца группы.

ChrisInEdmonton
источник
Привет @ChrisInEdmonton, ты нашел способ сделать эту работу в конце? Я сейчас столкнулся с той же проблемой, я запускаю Cygwin для rsync файлов из Windows в окно Linux, но не могу установить правильный идентификатор группы для новых файлов, отправляемых через: rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/файлы приземляются как john: john вместо john: projx ( где projx - это название группы)
John
1
Я только что нашел rsync 3.1 включает в себя --groupmap=*:group-name'.. сразу после того, как я написал ха.
Джон

Ответы:

8

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

Единственное, что я могу себе представить, это:

  1. используйте --delay-updates, чтобы сделать удаленные файлы более атомарными, мгновенные операции назначения
  2. g + rwx, o + rwx в опции rsync --chmod

а затем запустите:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

источник
Да, я думаю, это то, что мы собираемся сделать. Я удивлен, что у вас или у меня нет возможности сделать это только с помощью rsync, но эй.
ChrisInEdmonton
6

Я думаю, что флаг -p отсутствует в вашей команде ..

--chmod

Эта опция указывает rsync применить одну или несколько разделенных запятыми строк «chmod» для разрешения файлов при передаче. Полученное значение обрабатывается так, как если бы это были разрешения, предоставленные отправляющей стороной для файла, а это значит, что эта опция может не повлиять на существующие файлы, если --perms не включен .

h3.
источник
1
-pФлаг неявно включен как часть -aопции (архив).
Энтони Геогеган