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 имеет правильного владельца группы, но все файлы внутри имеют неправильного владельца группы.

2 ответа2

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/*
6

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

--chmod

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .