什么规定了“mount”命令的用户权限?

什么规定了“mount”命令的用户权限?

我安装的 CentOS 6.5 已停止在 KDE(默认)X Window 桌面环境(例如使用所有 KDE 帮助程序功能)中自动安装 DVD。为了解决 DE 操作中的这种意外变化,我查看了:

  • /etc/fstab
  • /etc/group

我没有注意到有什么改变。阅读 mount 的手册页后,我添加了一行新内容fstab

/dev/sr0   /media/dvd   iso9600   ro,users,noauto,unhide

然后,我将我的非 root 用户 ( chris) 添加到组users;但是,mount仍然只能由 root 访问:

$ mount -a
mount: only root can do that
$ mount /dev/sr0 /media/dvd
mount: only root can do that
$ mount /dev/sr0 /media/dvd
mount: only root can do that

目前唯一有效的命令是:

$ sudo mount /dev/sr0 /media/dvd

授予用户安装 DVD 的权限需要哪些工作?额外提示,为什么 KDE 会突然停止安装 DVD?

答案1

$ mount -a
mount: only root can do that

此命令尝试挂载 中的所有条目/etc/fstab,并且由于并非所有条目都有user/users选项,因此对于没有管理员权限的用户来说这是不可能的。

$ mount /dev/sr0 /media/dvd
mount: only root can do that

这指定两个都要安装的设备挂载点,实际上根本不需要/etc/fstab(因为如果您不在命令行上指定文件系统特定的默认挂载选项,则将假定它们,并且如果您不指定文件系统类型,将执行文件系统类型自动检测)。它的功能强大到足以轻易打开各种安全漏洞,因此非 root 用户根本无权使用这种形式的命令mount


当以非 root 用户身份挂载具有/ mount 选项的mount管理员准备的条目时,您必须指定/etc/fstabuserusers仅设备或者仅挂载点。这将使该mount命令查找 中完整命令行的缺失部分/etc/fstab,因此该命令将看到非 root 用户已被授权执行该特定安装。

所以这些mount命令中的任何一个并且只有这些将允许非 root 用户安装 CD/DVD,给出/etc/fstabOP 中指定的行:

mount /dev/sr0

或者

mount /media/dvd

当由非 root 用户使用时,该mount命令还将检查该用户是否能够访问设备和安装点,如果不正确,则将拒绝该命令。当用户本地登录时,登录会话设置(通常以 PAM 模块的形式)通常会授予用户对可移动设备的访问权限。这可以通过授予本地登录用户一些额外的组成员身份(符合 udev 规则配置的设备权限)来完成,或者在现代 Linux 发行版上,通过在 udev 中使用 标记设备来完成,TAG+="uaccess"这将触发会话设置以在本地登录时向这些设备添加 ACL,并在注销时将其删除。

如果非 root 用户需要被授权通过 SSH 会话或其他远程登录来安装可移动设备,许多发行版会为此目的提供预配置的用户组(例如 cdromplugdev组)。


GUI 环境通常有自己的机制来允许用户安装可移动媒体,但有自己的限制。在撰写本文时,udisksd是一个常用的系统级组件。它通过系统 D-Bus 与udisksctl命令行工具或任意数量的 GUI 文件管理器和可移动媒体访问工具进行通信。

答案2

我不确定您的问题有一个明确的答案,因为安装方式会影响系统。我找到了这个线程:

为什么挂载需要root权限?

它提到了如何使用安装来获得对系统的 root 访问权限,因此它通常被锁定到 root 用户 - 所以它看起来并不是一个简单的事情。但是,我确信如果您不顾一切,您可能会执行一些低于最佳的实践,这些实践将允许您从“用户”级别用户执行安装。

我想您正在寻找的答案就在这里:

允许非超级用户挂载任何文件系统

答案3

这里有几点::

  1. 首先,删除noauto,因为这会阻止mount -a工作。

  2. 然后还要检查“T”位是否设置为on /media/dvd,例如

    chmod +t /media/dvd
    

这将在 dvd 目录上设置粘滞位,以便任何人都可以写入并拥有并能够删除仅修改他/她的文件目录。

  1. 此外,还需要 CAP_SYS_ADMIN Linux 功能才能挂载。

有关这方面的更多信息,请参阅:

如何在 CentOS 7 中为用户添加“cap_sys_admin”权限?

  1. 将“用户”更改为“用户”

那应该可以解决你的问题。

相关内容