我在 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 用户存在问题,这会对权限模型产生直接影响(请参阅用户映射部分的手册页)。您还可以在那里使用更高级的配置(请参阅permissions
和acl
选项),但这将涉及更细粒度的访问控制模型,更接近于在启用 ACL 的情况下,你可以在 Ext 文件系统上做什么,仅从传统模型来看是无法看出的rwxrwxrwx
。
(请注意,中的 NTFS 部分man mount
不适用于ntfs-3g
您正在使用的。)