Rsync 명령 문제, 소유자 및 그룹 권한이 변경되지 않습니다


28

소유자와 그룹을 설정하려고하는데 rsync작동하지 않는 것 같습니다.

이것은 명령입니다 :

sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/

파일이 올바르게 동기화되었지만 소유자와 그룹을 변경하지 않는 것 같습니다.

답변:


14

제대로 작동하는 것 같습니다. 소유자 및 그룹 이름 을 유지 하려면 ( --owner및 설정하지 않음) 전송 후 변경하지 않기를 의미합니다.--group

이 옵션을 사용하지 않으면 수신 측의 사용자 및 그룹이 발신 사용자로 변경됩니다. 다른 사용자를 지정 chown하려면 스크립트에 명령을 추가해야합니다 .

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

남자 rsync


1
그렇다면 어떻게 사용자와 그룹을 격분시킬 수 있습니까? ssh를 통해? 방법을 말씀해 주시겠습니까? 두 서버 모두에 대한 루트 액세스 권한이 있습니다. ssh 키를 사용하고 싶지 않지만 모든 옵션을 알려주십시오. 감사합니다. 빠른 답변 주셔서 감사합니다
Arnoldo Bazaldua

명령은 다음과 같습니다. ssh root@ip 'chown -R cmsseren:cmsseren /home/serena/public_html2/*'
user3150166

나는 그것을 시도했지만 작동하지 않았다. 소유자와 사용자는 동일하다. 명령을 한 후 그것은 말합니다 : stdin :는 tty가 아닙니다
Arnoldo Bazaldua

이제 방화벽 문제가 해결되었습니다. 이제 ssh와 rsync의 비밀번호 입력을 자동화해야합니다
Arnoldo Bazaldua

당신의 도움을 주셔서 감사합니다, otherquestion이 게시 거 야
Arnoldo Bazaldua

61

rsync 버전 3.1.0 은 Thomas가 소개 --usermap하고 --groupmap언급 한 편의 옵션도 포함하며 --chown, 이는 시나리오에 적합합니다.

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

또한 -o-g옵션이 필요합니다. 제외하면 해당 속성을 업데이트하지 못하지만 오류는 발생하지 않습니다.

rsync -og --chown=cmsseren:cmsseren [src] [dest]

이 옵션 은 맨 페이지에 간접적으로 언급되어 있는데,이 --chown옵션은 " 내부적으로 사용 --usermap하여 --groupmap내부적으로 구현 됨 "및

의 경우 --usermap옵션은 아무런 영향을하려면 -o( --owner) 옵션이 사용 (또는 암시) 및 수신기 (또한 참조 슈퍼 사용자로 실행해야합니다되어야합니다 --fake-super옵션).

의 경우 --groupmap옵션은 아무런 영향을하려면 -g( --groups) 옵션이 사용 (또는 암시), 수신기는 해당 그룹을 설정할 수있는 권한이 있어야합니다 있어야합니다.


5
왜 -og가 필요한가요? 그것은 나에게는 비논리적 인 것처럼 보이지만 내 시스템에서도 필요합니다.
Yai0Phah

4
@FrankScience 동의합니다, 그것은 비논리적 인 것 같습니다. rsync 메일 링리스트에서 같은 질문을 했다 . "나는에 대한 문서가 제안 할 --chown것을 언급하는 잘 할 것 --owner( --super) 및 --group이 필요하다" .
TachyonVortex

5

rsync의 최신 버전 (최소 3.1.1)에서는 "원격 소유권"을 지정할 수 있습니다.

--usermap=tom:www-data

Tom 소유권을 www-data (일명 PHP / Nginx)로 변경합니다. Mac을 클라이언트로 사용하는 경우 brew를 사용하여 마지막 버전으로 업그레이드하십시오. 그리고 서버에서 아카이브 소스를 다운로드 한 다음 "만들기"하십시오!


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.