파일 시스템을 마운트하고 사용자 ID를 매핑하는 방법은 무엇입니까?

파일 시스템을 마운트하고 사용자 ID를 매핑하는 방법은 무엇입니까?

ext4 파티션을 성공적으로 마운트할 수 있습니다. 문제는 파티션의 모든 파일이 사용자 ID 1000을 가진 사용자의 소유라는 것입니다. 한 컴퓨터에서는 내 사용자 ID가 1000이지만 다른 컴퓨터에서는 1010입니다. 내 사용자 이름은 두 컴퓨터 모두에서 동일하지만 파일 시스템이 사용자 이름이 아닌 사용자 ID를 저장한다는 것을 깨달았습니다.

다음과 같은 방법을 사용하여 파일 소유권을 수정할 수 있습니다.

find /mnt/example -exec chown -h 1010 {} \;

하지만 이 외장 드라이브를 다른 컴퓨터에 마운트할 때 파일 소유권을 다시 1000으로 수정해야 합니다.

내가 원하는 것은 mount실제로 파일을 수정할 필요가 없도록 사용자 ID 1000을 1010으로 매핑하는 옵션을 제공하는 것입니다. 이를 수행할 수 있는 방법이 있습니까?

답변1

보세요파일 시스템 바인딩팩. binfs는 기존 파일 시스템 위에 파일 권한, 파일 소유권 등에 대한 다양한 작업을 수행할 수 있는 FUSE 파일 시스템입니다.

당신은 특별히 찾고 있습니다--지도 옵션파일 시스템 바인딩:

--map=user1/user2:@group1/@group2:..., -o map=...
    Given a mapping user1/user2, all files owned by user1 are shown as owned by user2. When user2 creates files, they are chowned to user1 in the underlying directory. When files are chowned to user2, they are chowned to user1 in the underlying directory. Works similarly for groups.

    A single user or group may appear no more than once on the left and once on the right of a slash in the list of mappings. Currently, the options --force-user, --force-group, --mirror, --create-for-*, --chown-* and --chgrp-* override the corresponding behavior of this option.

    Requires mounting as root. 

따라서 사용자 ID가 1001인 파일을 사용자 ID가 1234인 파일 /mnt/wrong에 매핑하려면 /mnt/correct다음 명령을 실행합니다.

sudo bindfs --map=1001/1234 /mnt/wrong /mnt/correct

답변2

커널이 5.12 이상이고 파일 시스템을 지원하는 경우(ext4는 괜찮지만 BTRFS 지원은 5.15까지 추가되지 않았습니다) 다음을 사용할 수 있습니다.신원 매핑마운트 기능에서. 당신은 사용해야합니다마운트 ID 매핑지원할 만큼 새로운 util-linux가 나올 때까지 프로그램을 실행하세요.X-mount.idmap기능은 입니다 mount.

간단한 예는 다음과 같습니다. 사용 mount-idmapped uid가 1010인 시스템에 있는 경우 다음 명령을 사용할 수 있습니다. mount-idmapped --map-mount b:1000:1010:1 /mnt/example /mnt/example

두 개의 호스트 uid를 동일한 대상 uid에 매핑할 수 없다는 것과 같은 몇 가지 주의 사항이 있습니다. 따라서 binfs는 보다 일반적인 솔루션이지만 이는 귀하의 사용 사례에 적합합니다.

답변3

당신은 그것을 사용할 수 있습니다파일 시스템 바인딩. 다른 uid/gid를 사용하여 파일 시스템을 다른 마운트 지점에 바인딩할 수 있습니다. 그러나 나는 uid를 변경하여 두 시스템 모두에서 동일하게 할 것이라고 생각합니다.

관련 정보