![한 Linux에서 다른 Linux로 파일 및 디렉터리를 마이그레이션할 때 권한을 유지하는 방법](https://linux55.com/image/221756/%ED%95%9C%20Linux%EC%97%90%EC%84%9C%20%EB%8B%A4%EB%A5%B8%20Linux%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%20%EB%B0%8F%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98%ED%95%A0%20%EB%95%8C%20%EA%B6%8C%ED%95%9C%EC%9D%84%20%EC%9C%A0%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
한 컴퓨터에서 다른 컴퓨터로 파일과 디렉터리를 마이그레이션하려면 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
모든 관련 정보는 유지됩니다.