web-dev-qa-db-ja.com

特別なユーザーIDが設定されたファイルシステムのマウント

デバイス/dev/sda3をディレクトリ/foo/bar/bazにマウントします。マウント後、ディレクトリはユーザーjohndoeのuidを持つ必要があります。だから私はやった:

Sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

/etc/fstabに次の行を追加しました:

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

ここでSudo -u johndoe mount /dev/sda3コマンドを実行すると、stat -c %U /foo/bar/bazrootではなくjohndoeになります。 uid johndoeを設定してこのext4-filesystemをマウントする最良の方法は何ですか?

18
qbi

Ext4ファイルシステムを使用してディスク上の所有者を強制することはできません。 fatなどのLinuxパーミッションをサポートしていないファイルシステムのみに、所有権/グループシップの属性があります:uid=valueおよびgid=valueマウントのマニュアルページ を参照してください。

次のように、マウントされたファイルシステムの所有者を変更する必要があります。

Sudo chown johndoe /foo/bar/baz

パーミッションを再帰的に変更する必要がある場合:

Sudo chown -R johndoe /foo/bar/baz

...また、グループをjohndoeに変更する必要がある場合:

Sudo chown -R johndoe: /foo/bar/baz
20
Lekensteyn

bindfsが答えです。すでにマウントされているファイルシステムを取得し、任意のuidでそのビューを提供します。

Sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
Sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
18
Catskul

ファイルに設定されたグループに適切なアクセス許可があると仮定すると、そのグループID(GID)を見つけて追加することができます。


ファイルのグループIDを確認するには、ls -nを使用します。出力例:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

GIDの4番目のフィールドが必要です。これは、私の場合は2番目の1000です。

Sudo addgroup --gid GID foobar; Sudo usermod `whoami` -aG foobar

一度それを実行すると、グループのファイル属性で許可されているすべての場所を完全に管理できるはずです。

ユーザーのアクセス許可に関する他の回答で述べたように、一部のファイルのグループを修正する必要がある場合は、これらのoneを実行します。

Sudo chown -R :foobar ./
Sudo chgrp -R  foobar ./
6
Chinoto