web-dev-qa-db-ja.com

ファイルシステムをマウントしてユーザーIDをマッピングするにはどうすればよいですか?

私はext4パーティションを正常にマウントできます。問題は、パーティション上のすべてのファイルがユーザーID 1000のユーザーによって所有されていることです。あるマシンでは、ユーザーIDは1000ですが、別のマシンでは1010です。私のユーザー名は両方のマシンで同じです、しかし私はファイルシステムがユーザー名ではなくユーザーIDを保存していることを理解しています。

次のような方法でファイルの所有権を修正できます。

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

しかし、この外部ドライブを別のマシンにマウントすると、ファイルの所有権を1000に戻す必要があります。

私が望むのは、mountにmap userid 1000 to 1010というオプションを付けて、実際にファイルを変更する必要がないようにすることです。これを行う方法はありますか?

16
Flimm

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. 

したがって、/mnt/wrongのユーザーID 1001のファイルをユーザーID 1234の/mnt/correctにマッピングするには、次のコマンドを実行します。

Sudo bindfs --map=1001/1234 /mnt/wrong /mnt/correct
18
Tho85

bindfs を使用できます。ファイルシステムを、異なるuid/gidを持つ他のマウントポイントにバインドできます。ただし、私はuidを変更するだけなので、両方のシステムで同じになると思います。

1
megahallon