Rsync - 소유자/그룹 메타데이터를 유지하지만 로컬 사용자는 유지하지 않음

Rsync - 소유자/그룹 메타데이터를 유지하지만 로컬 사용자는 유지하지 않음

rsync내 서버가 콘텐츠를 백업하길 원합니다 . 나중에 백업을 사용하여 서버를 복원할 수 있도록 소유자/그룹을 유지하고 싶습니다. 그러나 서버에는 내 로컬 컴퓨터와 다른 사용자 및 그룹 집합이 있으므로 로컬 사용자를 사용하는 것은 의미가 없습니다. rsync또한 보안상의 이유로 루트로 실행하고 싶지 않습니다. 어떻게 해야 합니까?

답변1

각 파일에 대한 권한, 사용자, 그룹을 저장하는 스크립트를 작성할 수 있습니다.

getfacl -R / > /tmp/permissions.txt

필요하다면 복원 가능

setfacl --restore=permissions.txt

그런 다음 request.txt를 포함한 모든 것을 백업 호스트의 일반 사용자 계정으로 rsync하십시오.

단점은 Permissions.txt가 실제 백업과 100% 동기화되지 않을 수 있다는 것입니다.

일반 사용자 계정에 잘못된 권한으로 비밀 파일을 저장하면 보안 문제가 발생할 수도 있습니다! 최소한 전체 백업이 포함된 디렉터리는 백업 사용자만 읽을 수 있어야 합니다.

추가 보안 참고 사항: 원래 호스트의 Permissions.txt도 보호되어야 하며 루트만 읽을 수 있습니다.

답변2

루트로 실행되지 않는 솔루션은 제공할 수 없지만 다음은 제공할 수 있습니다.

첫째, 이를 사용하면 --numeric-idsUID/GID가 유지됩니다. 복구를 위해 rsync또는 (또는 UID/GID와 혼동되지 않는 모든 것)을 사용하면 tar괜찮습니다.

rsync -avP --numeric-ids

root그러나 Unix에서는 파일을 다른 사용자로 생성해야 하기 때문에 루트로 실행하지 않으면 문제가 됩니다 . selinux를 사용하여 명령에 모든 파일에 대한 쓰기 권한을 부여할 수 있지만 이는 매우 복잡합니다( --fake-super도움이 되긴 하지만).

백업 서버는 루트를 사용하지만 상대방은 루트를 사용하지 않는 경우 보안 요구 사항을 충족합니까?

# run this on the backup host:
rsync -avP --numeric-ids user@SOURCEHOST:/path/to/files/. /path/to/dest/.

root@BACKUPHOST가 user@SOURCEHOST로 SSH를 통해 연결할 수 있다면 괜찮습니다. 글쎄요, 대부분은 좋습니다. 파일에 액세스할 수 없으면 user백업되지 않습니다. 상황에 따라 이는 문제가 되지 않을 수도 있습니다.

관련 정보