rsync로 생성된 대상 디렉터리의 파일 모드를 제어할 수 있나요?

rsync로 생성된 대상 디렉터리의 파일 모드를 제어할 수 있나요?

directory-to-be-created다음 명령 에서 파일 모드 비트를 제어하고 싶습니다 rsync.

rsync -a ... <remote-user>@<remote-host>:/some/existing/path/directory-to-be-created/

이름에서 알 수 있듯이 디렉터리는 아직 존재하지 않으며 rsync충실하게 생성해야 합니다.하지만,내가 아는 한언제나이것이 준수됩니까?<원격 호스트>기본 설정으로 umask--chmod=...제가 이해할 수 없는 주문으로는 다른 일을 할 수 없습니다...

그러면 누락된 대상 디렉터리를 생성하기 위한 파일 모드를 설정할 수 있으며, 그렇다면 어떻게 설정해야 합니까?

답변1

rsync이 기능은 기본적으로 지원되지 않을 수 있지만 파일 시스템을 사용할 수 있습니다ACL/some/existing/path/아래에 새로 생성된 디렉터리 에 특정 권한 집합이 있는지 확인하세요 . 예를 들어:

$ setfacl -dm u::rwx,g::rx,o::r /some/existing/path/

아래에 새로 생성된 디렉터리에는 이제 수동 또는 전달 /some/existing/path/권한이 있어야 합니다.750rsync

답변2

이 답변나를 계속 따라가게 해주세요--rsync-path=PROGRAM옵션:

--rsync-path=PROGRAM

rsync를 시작하기 위해 원격 컴퓨터에서 실행할 프로그램을 지정하려면 이를 사용합니다. 기본 원격 셸의 경로에 있지 않을 때 rsync자주 사용됩니다 (예 --rsync-path=/usr/local/bin/rsync: ).

알아채다PROGRAMrsync쉘의 도움으로 실행되므로 통신에 사용되는 표준 입력 및 표준 출력을 파괴하지 않는 한 실행하려는 모든 프로그램, 스크립트 또는 명령 시퀀스가 ​​될 수 있습니다 .

까다로운 예는 --relative이 옵션과 함께 사용할 원격 시스템에 다른 기본 디렉터리를 설정하는 것입니다. 예를 들어:

rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/

그래서 나는 이것만 할 수 있는 것 같습니다:

rsync -a --rsync-path='umask 0022 && rsync' ...

...기본값 umask(또는 실제로어느rsync원격 호출 전 필수 조건 :-)

관련 정보