NTFSマウントドライブの所有権を変更できないのはなぜですか?
uid=1000,gid=1000,
私のファイルに背中を提供しましたが、うまくいかない/etc/fstab
ことがわかりました。だから私はコマンドラインでテストしました。
root@host:~# mount | grep /mnt/tmp1 | wc
0 0 0
root@host:~# mount -o uid=1000 /dev/nvme0n1p4 /mnt/tmp1/
root@host:~# mount | grep /mnt/tmp1
/dev/nvme0n1p4 on /mnt/tmp1 type fuseblk (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096)
root@host:~# umount /mnt/tmp1
root@host:~# mount -o user_id=1000 /dev/nvme0n1p4 /mnt/tmp1/
root@host:~# mount | grep /mnt/tmp1
/dev/nvme0n1p4 on /mnt/tmp1 type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.10
Release: 21.10
Codename: impish
$ apt-cache policy mount
mount:
Installed: 2.36.1-8ubuntu1
Candidate: 2.36.1-8ubuntu2
Version table:
2.36.1-8ubuntu2 500
500 http://archive.ubuntu.com/ubuntu impish-updates/main amd64 Packages
*** 2.36.1-8ubuntu1 500
500 http://archive.ubuntu.com/ubuntu impish/main amd64 Packages
100 /var/lib/dpkg/status
私は何を逃したことがありませんか?
NTFSマウントドライブの所有権を変更できないのはなぜですか?
答え1
NTFS-3gを使用しています。ユーザースペースNTFSファイルシステムドライバ。
カーネルとこれらのユーザー空間ファイルシステムドライバの間には、FUSE(USERspaceのFile Systemの略)と呼ばれるインタフェース層があります。
ファイルシステムタイプはfuseblk
、でない、またはntfs
でマークされますntfs-3g
。が表示されている場合、type fuseblk (some options)
括弧内のオプションは次のとおりです。ヒューズオプション、実際のファイルシステムオプションではありません。man 8 fuse
詳細については、ご確認ください。
具体的には、これはuser_id=0
「このFUSEファイルシステムがルートによってマウントされる」ことを意味し、それ以上ではありません。実際のマウントオプションはファイルシステムドライバプロセスに提供されており、これにより何でもできます。 (allow_other
FUSEオプションを指定しない限り、FUSEはファイルシステムをマウントしたユーザーにのみファイルシステムアクセスを許可します。)
残念ながら、FUSEインタフェース層では、mount
FUSEベースのファイルシステムの実際のマウントオプションをコマンド出力に表示することはできません。これは、既存のカーネルベースのファイルシステムが表示するのと同じ方法です。
代わりに実行すると、指定したインストールオプションを含むファイルシステムドライバプロセスと対応するコマンドラインオプションがpgrep -a ntfs-3g
表示されます。ntfs-3g
たとえば、私のシステムには次の行があります/etc/fstab
。
UUID="A268B5B668B599AD" /win/c ntfs-3g defaults,windows_names,inherit,nofail 0 0
UUID="56A31D4569A3B7B7" /win/d ntfs-3g defaults,windows_names,inherit,nofail 0 0
したがって、次のプロセスを見てみましょう。
$ pgrep -a ntfs-3g
775 /sbin/mount.ntfs-3g /dev/nvme0n1p3 /win/c -o rw,windows_names,inherit
1008 /sbin/mount.ntfs-3g /dev/sdb2 /win/d -o rw,windows_names,inherit
答え2
これは私のFSTABエントリです。参考にしてください実装するオプション:
UUID=66D6934FD6931DFD /mnt/SeagateExpansionDrive ntfs-3g auto,users,permissions,exec,x-gvfs-show 0 0
上記のように、chown、chmod、およびexecシェルスクリプトを使用できます。私はUbuntuを実行しています。