rsync власником групи, дозвіл групи


10

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

Якби я був у віддаленій системі Linux, я міг би створити каталог і встановити права власності та дозволи:

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

Якщо я створю локально каталог, а потім використовую rsync (пам’ятайте, у мене немає своєї_групи локально), я:

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

Це працює, але я не можу зрозуміти, як встановити власника групи через rsync. Якщо я роблю a chmod g+s dest, my_directory має правильного власника групи, але всі файли всередині мають неправильного власника групи.


Привіт @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 - назва групи)
Іван

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 не ввімкнено .


1
-pПрапор неявно включений як частина -aопції (архів).
Ентоні Геоґеган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.