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 destmy_directory에 올바른 그룹 소유자가 있지만 내부의 모든 파일에 잘못된 그룹 소유자가 있습니다.


@ChrisInEdmonton, 안녕하세요. 결국이 작업을 수행 할 수있는 방법을 찾았습니까? 나는 지금 똑같은 문제에 직면하여 cygwin을 실행하여 Windows에서 Linux 상자로 rsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/파일을 재 동기화 하지만 새 파일의 올바른 그룹 ID를 통해 전송할 수는 없습니다 . 파일은 john : projx 대신 john : john 여기서 projx는 그룹의 이름입니다)
John

1
방금 rsync 3.1 포함 --groupmap=*:group-name'..을 발견 했습니다.
John

답변:


8

바로이 순간, 나는 후속 작업과 달리 rsync 작업 에서이 작업을 수행하는 방법을 찾고 있습니다. 일부 파일은 세계에서 읽을 수 없도록하고 그룹을 할당하여 해당 그룹 내의 원격 서버 프로세스에 대한 액세스를 제한하려고합니다. 하지만 찾지 못했습니다.

내가 상상할 수있는 유일한 것은 :

  1. --delay-updates를 사용하여 원격 파일을보다 원자적이고 즉각적인 작업으로 지정
  2. rsync --chmod 옵션의 g + rwx, o + rwx

그런 다음 다음을 실행하십시오.

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(아카이브) 옵션을 선택합니다.
Anthony Geoghegan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.