我安装的 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/fstab
user
users
仅设备或者仅挂载点。这将使该mount
命令查找 中完整命令行的缺失部分/etc/fstab
,因此该命令将看到非 root 用户已被授权执行该特定安装。
所以这些mount
命令中的任何一个并且只有这些将允许非 root 用户安装 CD/DVD,给出/etc/fstab
OP 中指定的行:
mount /dev/sr0
或者
mount /media/dvd
当由非 root 用户使用时,该mount
命令还将检查该用户是否能够访问设备和安装点,如果不正确,则将拒绝该命令。当用户本地登录时,登录会话设置(通常以 PAM 模块的形式)通常会授予用户对可移动设备的访问权限。这可以通过授予本地登录用户一些额外的组成员身份(符合 udev 规则配置的设备权限)来完成,或者在现代 Linux 发行版上,通过在 udev 中使用 标记设备来完成,TAG+="uaccess"
这将触发会话设置以在本地登录时向这些设备添加 ACL,并在注销时将其删除。
如果非 root 用户需要被授权通过 SSH 会话或其他远程登录来安装可移动设备,许多发行版会为此目的提供预配置的用户组(例如 cdrom
或plugdev
组)。
GUI 环境通常有自己的机制来允许用户安装可移动媒体,但有自己的限制。在撰写本文时,udisksd
是一个常用的系统级组件。它通过系统 D-Bus 与udisksctl
命令行工具或任意数量的 GUI 文件管理器和可移动媒体访问工具进行通信。
答案2
我不确定您的问题有一个明确的答案,因为安装方式会影响系统。我找到了这个线程:
它提到了如何使用安装来获得对系统的 root 访问权限,因此它通常被锁定到 root 用户 - 所以它看起来并不是一个简单的事情。但是,我确信如果您不顾一切,您可能会执行一些低于最佳的实践,这些实践将允许您从“用户”级别用户执行安装。
我想您正在寻找的答案就在这里:
答案3
这里有几点::
首先,删除
noauto
,因为这会阻止mount -a
工作。然后还要检查“T”位是否设置为on
/media/dvd
,例如chmod +t /media/dvd
这将在 dvd 目录上设置粘滞位,以便任何人都可以写入并拥有并能够删除仅修改他/她的文件目录。
- 此外,还需要 CAP_SYS_ADMIN Linux 功能才能挂载。
有关这方面的更多信息,请参阅:
如何在 CentOS 7 中为用户添加“cap_sys_admin”权限?
- 将“用户”更改为“用户”
那应该可以解决你的问题。