特別なユーザーIDを設定してファイルシステムをマウントする


19

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

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

次の行をmyに追加しました/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/bazはでrootなくになりjohndoeます。uidをjohndoe設定してこのext4-filesystemをマウントする最良の方法は何ですか?

回答:


20

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

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

sudo chown johndoe /foo/bar/baz

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

sudo chown -R johndoe /foo/bar/baz

...そしてグループjohndoeも同様に変更する必要がある場合:

sudo chown -R johndoe: /foo/bar/baz

2
あなたがそれを助けることができるならば、所有権を再帰的に変更することは一般に悪い考えです。「正しい」所有権を一掃すると、それを取り戻す簡単な方法は事実上ありません。IMO bindfsはこれを処理する正しい方法です(私の答えを参照)。
Catskul

3
bindfsは複雑さの別のレイヤーのように聞こえます。私の答えは、以前のインストールで別のユーザーIDで使用された外部ハードディスク(バックアップ用)に最適です。複数のユーザーIDを保持する必要がある状況(ルートファイルシステム)では-u使用しないでください。ただし、その場合は、異なるユーザーIDからのアクセス制限を回避するため、bindfs with も使用しないでください。--mapアクセス制限を保持する場合に使用する必要があります。
-Lekensteyn

1
私が使用しようとしてきた- 「それは許可レスのFS上でのみ可能だ」の1 uidgid、どの作品ではないだろう。
mgarciaisaia

19

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

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

1
bindfsには他の操作モードがあります。bindfs.org
docs

2
うーん、それはFUSEを使用しています。
ナビン

私は、ホストOSとは異なるユーザー権限で9p仮想ファイルシステムをマウントしたかったのです。それを機能させようとして壁に頭をぶつけていました。Bindfsは本当に私を拘束から解放しました。素晴らしい小さなツール!
ボアン

6

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


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

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

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

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

一度それを実行すると、グループのファイル属性で許可されているすべての場所を手に入れることができます。

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

sudo chown -R :foobar ./
sudo chgrp -R  foobar ./

1
A以外のファイルの所有権を変更せずに、ユーザーまたはグループをAからBに切り替える場合は注意してください。sudo chown --from A B -R ./ユーザーとsudo chown --from :A :B ./グループに使用できます
LateralFractal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.