为什么我无法更改挂载硬盘中的文件的权限和所有权?

为什么我无法更改挂载硬盘中的文件的权限和所有权?

我在 ubuntu 服务器上安装了一个硬盘

sudo mkdir /hard
sudo mount -t ntfs-3g /dev/sdb1 /hard

然后我发现权限是777,并且挂载的文件也是777,所以我想更改它们的权限,我尝试了这个:

chmod 755 /hard/ -R

我发现所有文件的权限保持不变777。权限如下:

drwxrwxrwx  1 root root          0 May 11 22:48 d5d3eda62d1fc7f8925be8e39153d3bd/
drwxrwxrwx  1 root root          0 Apr  4 15:42 movie/
drwxrwxrwx  1 root root          0 May 11 20:47 music/

我也尝试更改这些文件的所有者,但也失败了。

chown -R roger:roger /hard

答案1

因为 NTFS 是 Windows 文件系统,它不使用 Linux 权限。

您在安装期间设置 NTFS 的权限。

要在 ntfs 分区上设置权限,请在挂载期间使用 uid、gid、umask。请参阅 中的 NTFS 部分man mount

答案2

本质上,NTFS 是一个 Windows 文件系统,它并不完全直接映射到传统 unix 权限。默认情况下会进行人工映射(参见ntfs-3g手册页访问处理和安全):

默认情况下,文件和目录归挂载进程的有效用户和组所有,每个人都具有完全的读取、写入、执行和目录浏览权限。您还可以使用 uid 和/或 gid 选项以及 umask 或 fmask 和 dmask 选项将权限分配给单个用户。

(这与 FAT 文件系统的安装方式非常相似。)

从根本上讲,将 Linux 用户映射到 Windows 用户存在问题,这会对权限模型产生直接影响(请参阅用户映射部分的手册页)。您还可以在那里使用更高级的配置(请参阅permissionsacl选项),但这将涉及更细粒度的访问控制模型,更接近于在启用 ACL 的情况下,你可以在 Ext 文件系统上做什么,仅从传统模型来看是无法看出的rwxrwxrwx

(请注意,中的 NTFS 部分man mount不适用于ntfs-3g您正在使用的。)

相关内容