Mount
無法更改安裝 ntfs 驅動器的所有權
為什麼我無法更改掛載 ntfs 驅動器的所有權?
我在我的文件中給出
uid=1000,gid=1000,
了 etc/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 驅動器的所有權?
您正在使用 NTFS-3g,一個使用者空間NTFS 文件系統驅動程序。
在核心和任何此類使用者空間文件系統驅動程序之間,有一個稱為 FUSE 的介面層(USERspace 中的 Filesystem 的簡稱)。
請注意,文件系統類型被列為
fuseblk
,而不是ntfs
或ntfs-3g
。當您看到type fuseblk (some options)
時,括號內的選項是FUSE 選項,而不是實際的文件系統選項。看看man 8 fuse
你是否想知道更多細節。具體來說,
user_id=0
意思是“這個 FUSE 文件系統是由 root 安裝的”,僅此而已。實際的掛載選項被交給文件系統驅動程序程序,它可以對它們做任何事情。(FUSE 只允許掛載文件系統的使用者訪問它,除非allow_other
指定了 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