You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已挂载的vfat分区文件夹权限无法修改,Samba共享后其他机器无法访问,该如何解决?

已挂载的vfat分区文件夹权限无法修改,Samba共享后其他机器无法访问,该如何解决?

兄弟,你踩了个VFAT文件系统的典型坑——VFAT根本不支持Linux的权限管理模型!这就是为啥你用chmod、chown改完权限,ls出来还是原样,GUI里也改不动的原因。从你findmnt的输出能看到,这个分区挂载时就已经通过uid=1001,gid=1001,fmask=0022,dmask=0022这些参数,直接锁定了整个分区内所有文件和目录的权限,单独改某个文件夹完全无效。

下面给你一步步解决:

1. 先卸载当前分区

卸载前确保没有程序在使用这个分区里的文件(比如别在终端里进入这个目录,也别开着文件夹窗口),然后执行:

sudo umount /media/xduser/kingstone

2. 修改挂载参数(持久化到开机)

为了让权限适配Samba共享,我们需要调整挂载时的权限掩码,并且把设置写到/etc/fstab里,避免重启后失效。

第一步:获取分区UUID

先找到这个VFAT分区的UUID(比直接用/dev/sdc1更稳定):

sudo blkid /dev/sdc1

输出会类似这样,把里面的UUID="XXXX-XXXX"记下来:

/dev/sdc1: UUID="1234-ABCD" TYPE="vfat" PARTUUID="xxxxxxxxx"

第二步:编辑fstab文件

用编辑器打开/etc/fstab:

sudo nano /etc/fstab

添加或者修改对应分区的行(把下面的XXXX-XXXX换成你刚才拿到的UUID):

UUID=XXXX-XXXX /media/xduser/kingstone vfat rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0000,dmask=0000,codepage=437,iocharset=utf8,users 0 0

这里关键参数解释:

  • fmask=0000:文件权限掩码设为0,意味着文件默认权限是666(读写)
  • dmask=0000:目录权限掩码设为0,意味着目录默认权限是777(读写执行,能进入目录)
  • iocharset=utf8:确保中文文件名能正常显示,避免乱码

编辑完按Ctrl+O保存,回车确认,再按Ctrl+X退出编辑器。

3. 重新挂载分区

执行命令重新挂载,让新的权限参数生效:

sudo mount /media/xduser/kingstone

现在再用ls -li /media/xduser/kingstone看权限,share23目录应该就变成drwxrwxrwx了。

4. 配套调整Samba配置(确保共享正常)

最后还要检查Samba的共享配置,确保权限设置匹配。打开/etc/samba/smb.conf:

sudo nano /etc/samba/smb.conf

在文件末尾添加你的共享配置:

[share23]
    path = /media/xduser/kingstone/share23
    available = yes
    browseable = yes
    read only = no
    guest ok = yes
    create mask = 0777
    directory mask = 0777

保存退出后,重启Samba服务:

sudo systemctl restart smbd

这样操作完,其他机器再访问这个共享目录时,就能正常读写了。

补充说明

VFAT是Windows的老旧文件系统,本身没有权限、用户组这些Linux里的概念,所以所有权限都是挂载时通过参数强制设置的,没法单独修改某个文件或目录的权限——这是文件系统的先天限制,不是你操作错了哦。

备注:内容来源于stack exchange,提问作者ZedZip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:03:06