Linux 上的挂载权限

Linux 上的挂载权限

我有一个关于 Linux Fedora 中挂载的问题。我的主目录中有一个挂载点。挂载点位于 /home/user/project ,在 fstab 中我添加了以下行:

/dev/mapper/fedora-proj /home/user/project ext4 defaults 1 2

目录 /home/user/project 的文件权限为 0755,由用户拥有。但是当我执行“mount -a”时,目录所有者更改为root,权限为777。我知道ext2/3/4没有uid=和gid=选项,但为什么挂载点接收硬编码文件安装期间的权限以及如何更改它?

聚苯乙烯

该测试是在 Fedora 25 上进行的。当我在 Fedora 23 上执行完全相同的过程时,我看到了不同的行为:挂载目录权限更改为 755(挂载之前为 0777)

答案1

挂载点的根目录的权限存储在挂载的文件系统上(这实际上是有意义的;否则,根目录的权限将/存储在哪里?)。您可以按照正常方式更改它们:chmodchown等。

在挂载之前,您将看到父文件系统上挂载点目录的权限。安装后,您将看到已安装文件系统的根目录的权限。

示例:您有两个文件系统:

FS-A             FS-B
/                /
  /mnt             /file1
    /foo           /file2
  /etc           

请注意,它们都有一个最顶层/根目录 ( /),就像所有 (Unix) 文件系统一样。 FS-A 有两个子目录(如图所示)(/mnt/etc),并/mnt有一个子目录/mnt/foo。 FS-B 有两个文件,/file1以及/file2.作为 Unix 文件系统,所有这些目录和文件都有用户、组和权限。现在,让我们将 FS-A 设置为根文件系统,并将 FS-B 挂载到/mnt/foo。然后我们得到:

/                   # FS-A /
  /mnt              # FS-A /mnt
    /foo            # FS-A /mnt/foo *or* FS-B /
      /file1        # FS-B /file1
      /file2        # FS-B /file2
  /etc              # FS-A /etc

请注意我们如何选择是什么/mnt/foo——它可以/mnt/foo来自 FS-A,也可以/来自 FS-B。两者具有完全相同的路径。 Unix 的设计者选择了 FS-B。

PS:您的 fstab 行缺少文件系统类型。应位于选项 ( defaults) 之前。

相关内容