解决Linux系统下挂载NTFS文件系统硬盘后权限777的问题并配置自动挂载

解决Linux系统下挂载NTFS文件系统硬盘后权限777的问题并配置自动挂载

转载自:https://www.meowpass.com/pages/521df9/#%E9%97%AE%E9%A2%98

防止自己忘记。

补充,不建议使用 /etc/fstab 挂载磁盘

如果 fstab挂载磁盘失败,会导致无法开机,故而建议在 /etc/rc.local 中,系统启动后挂载,防止系统无法开机启动

问题

我的树莓派在挂载 NTFS 文件系统的移动硬盘后,所有文件的权限都是 777 ,而且还无法更改,看着非常的不舒服,但是我挂载其它文件系统格式的U盘却又没有这个问题,这是我的挂载命令:

sudo mount -o iocharset=utf8,uid=$(id -u),gid=$(id -g),rw /dev/sdb3 /mnt/usb3

即使加上了 rw 的参数,依旧无效。

解决方法

在挂载时添加 umasfmaskdmask 参数,Linux 系统中,目录默认权限为 755,文件默认权限为 644

umask:目录与文件的权限
fmask:文件的权限
dmask:目录的权限

挂载命令为:

sudo mount -o iocharset=utf8,uid=$(id -u),gid=$(id -g),dmask=022,fmask=133 /dev/sdb3 /mnt/usb3

dmask=022:目录权限 = 777 - 022 = 755,即 rwxr-xr-x
fmask=133:文件权限 = 777 - 133 = 644,即 rw-r–r–

自动挂载

想要实现开机自动挂载硬盘,可以编辑 /etc/fstab 文件,添加一行配置:

UUID=68064EA1064E705C /mnt/usb3 ntfs defaults,nofail,utf8,uid=1000,gid=1000,dmask=022,fmask=133 0 0

配置含义:

UUID=68064EA1064E705C:需要自动挂载的硬盘的UUID,通过命令 lsblk -f 查看

/mnt/usb3:挂载点

ntfs:文件系统类型,根据自己硬盘调整

defaults:使用文件系统的默认挂载参数

nofail:忽略错误,如果设备不存在则忽略;不加这个,如果开机时设备不存在会导致系统无法正常启动

utf8:字符编码

uid、gid:挂载这个硬盘的用户 id 和组 id

dmaskfmask:权限设置

0:不自动备份

0:开机不自检

修改完成后,运行命令检查一下配置是否正确:

sudo mount -a

重启后,硬盘就能自动挂载

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2024/01/16/jie-jue-linux-xi-tong-xia-gua-zai-ntfs-wen-jian-xi-tong-ying-pan-hou-quan-xian-777-de-wen-ti-bing-pei-zhi-zi-dong-gua-zai

Buy me a cup of coffee ☕.