it-swarm-ko.tech

rsync를 사용하여 파일 및 폴더 권한 유지

이 명령을 사용하여 전자 메일 계정의 백업을 유지합니다.

Sudo rsync -av --delete --progress -e "ssh -p pNumber" --rsync-path="/usr/bin/rsync" /vmail/ [email protected]_backup_server:/home/user/backups/vmail/

출처 : 대부분의 이메일 폴더는 vmail 사용자가 소유합니다.

대상 (백업 서버) : 시스템에 vmail라는 사용자가 없습니다.

내 질문, 위의 명령은 대상 컴퓨터에 vmail라는 사용자가 없어도 파일 및 디렉토리 권한을 유지합니까? 두 시스템 간의 사용자 이름이 동일하지 않은 경우에도 (백업 서버에서 일부 누락 됨) 파일과 권한을 대상에서 소스로 완전히 복원 할 수 있습니까?.

6
W.M.

rsync 사본은 대상 시스템에 존재하는지 여부에 관계없이 파일의 숫자 사용자 ID입니다. 해당 ID를 가진 사용자가 존재하지 않으면 ls 등은 이름 대신 해당 번호 만 표시합니다. 해당 사용자 ID가 대상 시스템의 다른 사용자 이름에 속하는 경우이 사용자는 이제 파일을 소유합니다.

이 시나리오에서는 백업 및 복원이 문제없이 작동합니다.

4
Sven

Rsync가 파일의 소유권을 유지하는 방법은 다음 두 가지에 달려 있습니다.

  • 대상에서 수퍼 유저 (루트)입니까?
    그렇지 않으면 본인 이외의 다른 사용자로 파일과 디렉토리를 만들 수 없습니다.

  • 어떤 옵션 플래그를 사용하고 있습니까?

-a 옵션에는 -o, --owner, -g, --group 소유권을 유지하도록 설계된 옵션.

파일 시스템 수준에서 사용자 및 그룹 소유권은 UID resp에 저장됩니다. GID 번호 UID/GID에서 사용자 이름 및 그룹 이름으로의 매핑이없는 경우 해당 숫자가 대신 표시됩니다.
같은 이름을 가진 사용자 및 그룹은 시스템마다 다른 UID/GID 번호를 가질 수 있습니다.

기본적으로 rsync는 username resp로 소유권을 일치 시키려고 시도합니다. 그룹 이름 . 다시 말해, 사용자 vmail가 소스의 파일 소유자 인 경우 rsync는 사용자가 다른 UID/GID 번호를 가진 경우에도 대상의 소유자 vmail를 만듭니다. .
일반적으로 UID/GID 번호의 형태로 소유권을 보지 않기 때문에 인간에게 가장 탄력적이고 예측하기 쉽습니다.

원격 대상에 일치하는 vmail 사용자가 없으면 폴백 시나리오가 발생합니다. 그러면 Rsync는 실제 기본 UID/GID 번호를 유지하고 소스에서 vmail 사용자의 UID 번호는 소유자를 설정하는 데 사용됩니다.

Rsync 방향을 바꾸고 백업을 복원 할 때 올바른 소유권을 유지해야합니다.

man rsync :

   -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.

          The preservation of ownership will associate matching names by default, but may fall back to using  the
          ID number in some circumstances (see also the --numeric-ids option for a full discussion).


   --numeric-ids
          With  this option rsync will transfer numeric group and user IDs rather than using user and group names
          and mapping them at both ends.

          By default rsync will use the username and groupname to determine what ownership  to  give  files.  The
          special  uid  0 and the special group 0 are never mapped via user/group names even if the --numeric-ids
          option is not specified.

          If a user or group has no name on the source system or it has no match on the destination system,  then
          the  numeric ID from the source system is used instead.  See also the comments on the "use chroot" set‐
          ting in the rsyncd.conf manpage for information on how the chroot setting affects  rsync’s  ability  to
          look up the names of the users and groups and what you can do about it.
11
HBruijn

특히 귀하의 경우 파일을 복원 할 때 실제 문제가 발생합니다. 열쇠는 파일을 되 찾을 때 원하는 소유자/그룹을 지정하는 것입니다. --chown=vmail:vmail

복원 할 새 시스템에서 사용자 vmail을 이미 작성했다고 가정하면 다음과 같은 문제가 발생합니다.

Sudo rsync -av --chown=vmail:vmail --force --delete --progress [email protected]_backup_server:/home/user/backups/vmail/ /vmail/

이 방법을 사용하면 해당 사용자와 동기화 할 수있는 한 백업 서버에서 누가 파일을 소유하고 있는지는 중요하지 않습니다 (이 예제에서는 이미 해당됨).

2
rarawls