我有一个关于 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
挂载点的根目录的权限存储在挂载的文件系统上(这实际上是有意义的;否则,根目录的权限将/
存储在哪里?)。您可以按照正常方式更改它们:chmod
、chown
等。
在挂载之前,您将看到父文件系统上挂载点目录的权限。安装后,您将看到已安装文件系统的根目录的权限。
示例:您有两个文件系统:
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
) 之前。