한 Linux에서 다른 Linux로 파일 및 디렉터리를 마이그레이션할 때 권한을 유지하는 방법

한 Linux에서 다른 Linux로 파일 및 디렉터리를 마이그레이션할 때 권한을 유지하는 방법

한 컴퓨터에서 다른 컴퓨터로 파일과 디렉터리를 마이그레이션하려면 tar를 사용해야 합니다. tar 또는 이와 유사한 것을 사용하고 싶습니다. 하지만 루트 액세스 권한이 없습니다. 내가 아는 한 "파일 권한과 소유권을 추출하려면 파일 소유권을 변경하려면 일반적으로 슈퍼유저 권한이 필요하기 때문에 추출할 때 루트로 tar를 실행해야 합니다."https://superuser.com/questions/838392/how-to-tar-a-directory-preserving-not-only-permissions-but-ownership-too

실제 상황:

mvbat홈 디렉토리에 계정이 있습니다 /home/mvbat. 이 디렉터리 내에는 권한이 다른 하위 디렉터리와 파일이 있으며 일부는 실행 가능하고 일부는 그렇지 않습니다.

이전 RedHat6에서 새로운 RedHat8로 마이그레이션하는 작업에 직면했지만 관리자가 부과한 제한 사항이 있습니다.

개발팀으로서 우리는 rsync마이그레이션을 사용할 수 없습니다.

답변1

시도해 보셨나요?

파일 소유권을 변경하려면 (당연히) 루트 권한이 필요하지만 루트 없이도 권한을 유지할 수 있습니다.

"수신" tar는 파일을 실행하는 것과 동일한 uid가 아닌 경우 파일 소유권을 변경할 수 없지만 권한을 충실히 보존합니다(umask 설정이 적용될 수 있습니다. 이를 방지하려면 다음 옵션을 사용하십시오 -p) 또는 압축을 풀기 전에 umask를 )로 변경하세요 0.

답변2

한 Linux 컴퓨터에서 다른 Linux 컴퓨터로 파일과 디렉터리를 마이그레이션할 때 권한을 유지하려면 -a(아카이브) 옵션과 함께 rsync 명령을 사용할 수 있습니다. 이 옵션은 권한, 소유권, 타임스탬프, 심볼릭 링크를 포함하여 파일의 다양한 속성을 유지합니다.

사용할 수 있는 명령의 예는 다음과 같습니다.

기본 사본

rsync -a /path/to/source/ user@remote:/path/to/destination/

이 명령에서 /path/to/source/를 마이그레이션하려는 디렉터리의 경로로 바꾸고 user@remote:/path/to/destination/을 대상 서버의 호스트 이름 또는 IP 주소(사용자 이름 )로 바꿉니다. 원격 서버에 연결하는 데 사용되며 대상 디렉터리의 경로입니다.

명령을 실행하기 전에 원격 서버에 대한 SSH 액세스 권한이 있어야 하며 대상 디렉터리가 원격 서버에 존재해야 합니다.

답변3

두 컴퓨터 모두에 물리적으로 액세스할 수 있는 경우 확장 유형 FS가 있는 외부 드라이브를 사용하십시오.

cp -a모든 관련 정보는 유지됩니다.

관련 정보