デバイス/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/baz
はroot
ではなくjohndoe
になります。 uid johndoe
を設定してこのext4-filesystemをマウントする最良の方法は何ですか?
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
bindfs
が答えです。すでにマウントされているファイルシステムを取得し、任意のuidでそのビューを提供します。
Sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
Sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo
ファイルに設定されたグループに適切なアクセス許可があると仮定すると、そのグループ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 ./