如何配置自动挂载磁盘并赋予用户读写权限?
如何配置自动挂载磁盘并赋予用户读写权限?
老哥我太懂你这糟心情况了!每次用fstab自动挂载磁盘后,权限全归root,自己想存个文件都被拒,手动改挂载目录权限根本没用,一重启或者重新挂载就打回原形——这问题其实不用折腾手动改权限,直接在fstab里加挂载参数就能彻底解决!
下面分两种常见文件系统给你说具体操作:
一、Linux原生文件系统(ext2/ext3/ext4等)
- 先查自己的用户ID(uid)和组ID(gid):打开终端输入
id,输出里会显示类似uid=1000(yourname) gid=1000(yourgroup)的内容,记下这两个数字 - 编辑
fstab配置文件:执行sudo nano /etc/fstab(也可以用vim,看你习惯) - 找到对应磁盘的挂载行,在
defaults后面加上,uid=你的uid数值,gid=你的gid数值。比如原来的行是:
改成:/dev/sdb1 /mnt/mydrive ext4 defaults 0 2/dev/sdb1 /mnt/mydrive ext4 defaults,uid=1000,gid=1000 0 2 - 保存退出后,先卸载磁盘:
sudo umount /mnt/mydrive,再重新挂载让配置生效:sudo mount -a - 这时候你再看挂载目录的权限,就已经是你的用户所有了,读写毫无问题!
二、Windows文件系统(NTFS/FAT32等)
这类文件系统本身不支持Linux的权限体系,所以得用umask或者uid/gid来强制指定权限:
- 同样先查自己的uid和gid(用
id命令) - 编辑
fstab,在挂载参数里加上uid=你的uid,gid=你的gid,umask=000(umask=000意味着所有用户都有读写执行权限,要是想限制同组权限可以用umask=002)。比如NTFS磁盘的挂载行可以改成:/dev/sdc1 /mnt/windrive ntfs defaults,uid=1000,gid=1000,umask=000 0 0 - 同样执行卸载加重新挂载的命令,生效后就能正常读写了
额外提醒
- 编辑
fstab前最好先备份:sudo cp /etc/fstab /etc/fstab.bak,要是写错了可以还原,避免系统开机失败 - 用UUID挂载比
/dev/sdb1这种更稳定,不怕磁盘顺序变动,用blkid命令可以查到磁盘的UUID,替换掉挂载行里的/dev/sdxx就行
备注:内容来源于stack exchange,提问作者bluescorpian




