사용자 아이디를 매핑하여 파일 시스템을 마운트하려면 어떻게해야합니까? 사용자 ID가 1000 인

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

다음과 같은 방법으로 파일 소유권을 수정할 수 있습니다.

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

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

내가 원하는 것은 mountmap userid 1000을 1010으로 지정하는 옵션 을 제공 하여 실제로 파일을 수정할 필요가 없도록하는 것입니다. 이 방법이 있습니까?



답변

bindfs를 살펴 보십시오 패키지를 . bindfs는 기존 파일 시스템에서 파일 권한, 파일 소유권 등을 다양하게 조작 할 수있는 FUSE 파일 시스템입니다.

bindfs 의 –map 옵션 을 구체적으로 찾고 있습니다 .

--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을 사용하여 파일을 매핑 /mnt/wrong/mnt/correct사용자 ID 1234,이 명령을 실행합니다 :

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

답변

bindfs 를 사용할 수 있습니다 . 파일 시스템을 다른 uid / gid를 가진 다른 마운트 지점에 바인딩 할 수 있습니다. 그러나 두 시스템에서 동일하게 uid를 변경한다고 생각합니다.