배포판 간에 파일 소유권을 이전하는 방법은 무엇입니까?

배포판 간에 파일 소유권을 이전하는 방법은 무엇입니까?

현재 저는 한 파티션에 Ubuntu를 설치하고 두 번째 파티션에 개인 파일(사진, 문서 등)을 설치하고 있습니다. 개인 파일 파티션을 유지하면서 Ubuntu가 포함된 파티션에 KDE Neon을 설치하고 싶습니다.

아직 Neon을 설치하지는 않았지만 부팅 가능한 USB를 사용해봤습니다.

내가 겪고 있는 문제는 한 설치 계정에서 다른 설치 계정으로 파일 소유권을 이전하는 방법을 모른다는 것입니다. 동일한 OS의 계정 간에 파일을 전송하는 경우 chown을 사용하면 되지만 OS 간에는 어떻게 수행하는지 모르겠습니다.

다른 사람들이 읽기 권한을 갖도록 권한을 설정한 다음 Neon 계정을 사용하여 내 모든 파일을 복사할 수 있다는 것을 깨달았지만, 내가 가지고 있는 파일 수로 인해 이 작업에는 몇 시간이 걸릴 것입니다. 차라리 chown이나 비슷한 것을 사용하고 싶습니다.

답변1

한 설치 계정에서 다른 설치 계정으로 파일 소유권을 이전하는 방법을 모르겠습니다.

파일은 사용자 이름에 속하지 않고 UID에 속합니다. 사용자 이름과 UID 간의 매핑은 일반적으로 사용자 데이터베이스 파일에서 관리됩니다 /etc/passwd. 다음은 샘플 스니펫입니다.

root:x:0:0:root:/root:/bin/bash
tom:x:1000:1000:Tom Pearce,,,:/home/tom:/bin/bash
bill:x:1001:1001:Bill Brewer,,,:/home/bill:/bin/bash
jan:x:1002:1002:Jan Stewer,,,:/home/jan:/bin/bash
peter:x:1003:1003:Peter Gurney,,,:/home/peter:/bin/bash

실행하면 ls -l각 파일의 UID/GID 소유자가 이 데이터베이스를 사용하여 해당 이름으로 변환됩니다. 를 사용하여 실제 이름을 확인할 수 있습니다 ls -ln.

따라서 파일 소유권을 "이전"하려면 몇 가지 옵션이 있습니다.

  1. UID/GID 매핑에 대한 이름이 두 시스템 모두에서 동일한지 확인하십시오. 이 경우에는 파일 소유권이 두 시스템의 동일한 이름 집합에 매핑되기 때문에 chown/가 필요하지 않습니다.chgrp

  2. 원본 UID/GID와 대상 UID/GID를 찾아 영향을 받는 각 파일을 하나씩 변경합니다. 파일을 UID/GID 쌍으로 변경한 다음 다시 변경하지 않도록 주의해야 하기 때문에 이것은 말처럼 간단하지 않습니다. 일반적으로 각 파일을 두 시스템 모두에서 사용하지 않는 임시 UID 범위로 chown설정한 다음 해당 세트에서 실제 세트로 변경합니다.chgrp

    # Example to change file UIDs from 1000 to 1010
    find / -mount -user 1000 -exec chown 61010 {} +
    
    # Later, when you've moved all the file ownwerships out of the 1xxx range
    find / -mount -user 61010 -exec chown 1010 {} +
    

관련 정보