修改 fstab 条目,以便所有用户都可以读写 EXT4 卷

Pha*_*nto 67 linux mount permissions ext4 fstab

我有一个带有 EXT4 分区的 Ubuntu 10.04 盒子。此分区设置为自动挂载到/etc/fstab. 出于本文的目的,我们将其称为:/media/foo

不幸的是,只能rootfoo. 为了让其他用户在这个卷上执行文件/io,root需要创建一个目录和chmod其他人的权限。

我想挂载卷,以便任何人都可以读/写卷而无需rootto chmod

下面是我的fstab条目:

/dev/sda8    /media/foo    ext4    rw,user,exec 0 0
Run Code Online (Sandbox Code Playgroud)

该条目最初有defaults而不是rw,user,exec。我添加了额外的条目,即rw任何用户都可以读/写。

不幸的是,该fstab条目不起作用。它安装得很好,但它仍然需要root干预。

而且,以防万一有人问,只需运行:chmod -R 777 *on /media/fooasroot不起作用。

Den*_*son 53

mount 选项user只允许任何用户挂载文件系统。该rw选项使文件系统不是只读的。您必须使用权限才能使父目录可写。

chmod 777 /media/foo
Run Code Online (Sandbox Code Playgroud)

chmod告诉你命令仅影响现有的文件 /media/foo

  • @DennisWilliamson 谢谢。如果它有什么不同,我已经把它放到了`/etc/rc.local`。不过,我对此的总体看法是,它确实应该在 `fstab` 中进行配置。如果没有,挂载点可以改变,脚本也必须改变,维护地狱。 (4认同)
  • Ubuntu 中在启动时添加此命令的最佳位置是什么? (3认同)
  • 同意chmod,但是添加一个:chmod +t /media/foo 使用户能够创建自己的子目录 (2认同)

小智 35

我认为将 fstab 条目更改为:

/dev/sda8    /media/foo    ext4    rw,user,exec,umask=000 0 0
Run Code Online (Sandbox Code Playgroud)

umask=000意味着任何人都可以读取、写入或执行 foo 中的任何文件或目录。通常的默认值是 022,这意味着用户不能写。

  • umask 只是 ntfs/vfat 分区的一个选项。mount 不会像 ext 文件系统上的 umask。 (46认同)
  • 在我的机器(Arch Linux)上,ext4 既不能识别 umask=000,也不能识别 mode=1777... (2认同)

小智 9

我在 openSUSE 上遇到了同样的问题,但我认为该解决方案也适用于此。我想共享已挂载文件系统的所有用户都属于同一个主要组:users

我的 fstab 中有以下行:

/dev/<partition> <mount_point>          ext4       rw,acl       0 0
Run Code Online (Sandbox Code Playgroud)

我运行了以下命令:

sudo chgrp -R users <mount_point>
sudo setfacl -d -m g::rwx <mount_point>
Run Code Online (Sandbox Code Playgroud)

以便新创建的文件或目录获得这些权限。这意味着您已经安装了 acl 包。