使用 /etc/fstab 自动挂载驱动器,并限制对特定组的所有用户的访问

使用 /etc/fstab 自动挂载驱动器,并限制对特定组的所有用户的访问

我目前有一个额外的硬盘,用作我的工作空间。我试图使用添加到 /etc/fstab 的以下行让它在重新启动时自动安装

/dev/sdb1 /media/workspace auto defaults 0 1

这可以自动安装它,但是我想限制属于特定组的用户的读/写访问权限。我该如何在 /etc/fstab 中执行此操作?我可以简单地使用乔恩或者chmod来控制访问?

答案1

如果文件系统类型是没有权限的文件系统类型(例如 FAT),您可以将umask,giduid添加到 fstab 选项中。例如:

 /dev/sdb1 /media/workspace auto defaults,uid=1000,gid=1000,umask=022 0 1

uid=1000是用户 ID。

gid=1000是组ID。

umask=022这将设置权限,以便所有者具有读、写、执行的权限。小组和其他人将阅读并执行。

要查看您的更改,您无需重新启动。一次umount又一次mount,没有争论。例如:

umount /media/workspace
mount  /media/workspace

但请确保没有任何进程(甚至是您的 shell)使用该目录。

答案2

我将通过包含挂载点的目录来访问文件系统。

作为根用户:

mkdir -p /media/group1only/workspace
chgrp group1 /media/group1only
chmod 750 /media/group1only

这是对 root 的完全访问权限以及 group1 成员的读取+执行访问权限。不要在此处授予他们写入权限,因为如果他们不小心重命名了workspace挂载点,可能会导致您的系统无法启动。

并将其添加到 /etc/fstab :

/dev/sdb1 /media/group1only/workspace auto defaults 0 1

挂载文件系统后,您可以对文件系统内的对象进行进一步的所有权和模式更改,以适应组成员之间更细粒度的访问。

答案3

例如,假设磁盘上的文件系统支持 ACL,并使用假设的用户 myusername 和假设的组来访问磁盘 diskusers,可以完成类似以下的操作。$表示以普通用户身份执行的命令;#表示以root用户执行的命令。

为此目的创建一个用户可能所属的组。

$ sudo groupadd diskusers
$ sudo usermod -a -G diskusers myusername
$ logout

再次登录。

$ sudo -i
# mount /media/workspace
# chown root:root /media/workspace
# chmod 0750 /media/workspace/
# setfacl -d -m -g:diskusers:7 /media/workspace
# setfacl -m g:diskusers:7 /media/workspace

命令中的“7”setfacl是八进制(读= 4 + 写= 2 + 执行= 1),很像普通的八进制权限(0400、0200、0100)。

-d是一个指定默认掩码的开关 - 新文件和目录。是-m应用于目录的掩码。

您还可以在设置默认值(如上所述)后最初将掩码应用于所有文件:

find /media/workspace -exec setfacl -m g:diskusers:7 {} +

此时,只有 root 和 diskuser 的成员可以访问这些文件。我也喜欢 Mark Plotnick 的想法,即对子目录应用权限。这项技术也可以这样使用。

答案4

我在 ubuntu 22.04

我在 fstab 中的 root 挂载是这样的:

UUID=myuuid /               ext4    errors=remount-ro,user=owner    0       1

所以,我没有进入 passwd conf 文件的所有者用户,但我认为这个所有者是挂载点(目录)的绝对所有者......

  • /有根所有者
  • /home/whateveruserwhateveruser 所有者
  • /media/myuser/mypendrivemyuser 所有者

我们不需要指定 user=listofusers。所有者足以获得 root 和有效的登录用户。

在我在 / ext4 挂载点设置 user=owner 后,我的 USB 3.0 pendrive 获得了近 200 MB 的传输速率。

我不知道这是否像我说的那样有效,但我可以在没有安装错误或systemd错误的情况下启动。

相关内容