普通用户对 NTFS 分区的权限全是 root,而且改不过来

我装的双系统。windows 的 D 盘 E 盘以及移动硬盘 NTFS 的,挂在/windows 下
突然发现,我的普通用户竟然对这些盘都有 root 权限,而且用 chmod 666, 755 都没用,改不过来。、
执行 sudo chmod 不报错,之后 ls … -l 还是老样子.

是不是必须修改/etc/fstab 文件?

而且非常奇怪的是,我首先 cat /etc/fstab, 可以看到上述三个 NTFS 分区各自的 UUID 以及挂载位置.
然后在 YaST -> System -> Partitioner 把上述几个 NTFS 分区统统 取消挂载 “Do not mount device”
再次查看 cat /etc/fstab,发现取消挂载的操作 "Do not mount device"竟然修改了 /etc/fstab 文件!

你需要的不是 chmod,而是 chown :rofl: :rofl: :rofl:

1赞

ntfs-3g 的 man 手册里有这样的描述:

By default, files and directories are owned by the effective user and group of the mountingprocess, and everybody has full read, write, execution and directory browsing permissions.

即默认情况下挂载的 NTFS 卷中的目录和文件为 root 用户和组所有,并且所有用户拥有读写执行权限。

要更改权限,需要在挂载参数中使用uidgid分别指定文件和目录的所有者和组,使用fmaskdmaks分别指定文件和目录的权限。

uid=用户 id,gid=组 id,dmask=022,fmask=133

像这样的挂载参数会将文件和目录的所有者设定为指定用户,并分配给目录 755 权限,文件 644 权限。

在 ArchWiki 上还有 更详细的用例

不过现在我一般不太挂载 NTFS 分区,因为首先在 Linux 写入还是存在一定风险,而且必须放弃 Bitlocker 加密。如果是只读的话权限配置其实意义不大。

1赞

关于第二个问题,YaST Partitioner 的很多配置确实会修改 /etc/fstab 啊,YaST 本身就是提供了一个前端来简化手工修改这些配置文件的操作,基本上 Yast 上的每个配置都有更底层的方法可以实现(不知道有没有特例,不过大部分模块应该都是如此)。

1赞

为 ntfs 建挂载点后。fstab 里权限什么都不用指定,直接 defaults.

微软家的 NTFS 不管你是 chmod 还是 chown 都是无效的。

什么特殊需求,要改权限呢

这个现象是从 15.1 才开始遇到的,之前的 42.3, 13.2 都没有。要复制文件到 NTFS 必须 sudo。

多谢,我马上试一下。