Ere*_*ted 1 fedora mount fstab
我有一个关于在 Linux Fedora 中挂载的问题。我的主目录中有一个挂载点。挂载点位于 /home/user/project 并在 fstab 中添加了以下行:
/dev/mapper/fedora-proj /home/user/project ext4 defaults 1 2
Run Code Online (Sandbox Code Playgroud)
目录 /home/user/project 的文件权限为 0755 并且归用户所有。但是当我执行 'mount -a' 时,目录所有者更改为 root 并且权限为 777。我知道 ext2/3/4 没有 uid= 和 gid= 选项,但是为什么挂载点接收硬编码文件挂载期间的权限以及如何更改它?
聚苯乙烯
测试是在 Fedora 25 上进行的。当我在 Fedora 23 上执行完全相同的过程时,我看到了不同的行为:挂载目录权限更改为 755(挂载前为 0777)
挂载点根目录的权限存储在挂载的文件系统上(这样做实际上很有意义;否则,根目录的权限/
将存储在哪里?)。你改变他们正常的方式:chmod
,chown
,等。
在挂载之前,您会看到父文件系统上挂载点目录的权限。挂载后,您将看到已挂载文件系统根目录的权限。
示例:您有两个文件系统:
FS-A FS-B
/ /
/mnt /file1
/foo /file2
/etc
?
Run Code Online (Sandbox Code Playgroud)
请注意,它们都有一个最顶层/根目录 ( /
),就像所有 (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
?
Run Code Online (Sandbox Code Playgroud)
请注意我们如何选择是什么/mnt/foo
——它可以/mnt/foo
来自 FS-A 或/
来自 FS-B。两者的路径完全相同。Unix 的设计者选择了 FS-B。
PS:您的 fstab 行缺少文件系统类型。应该在选项 ( defaults
)之前。