FreeBSD允许普通用户挂载CDROM/DVD/USB设备

时间:2020-01-09 10:38:27  来源:igfitidea点击:

如何允许任何普通用户(例如我的儿子或妻子)将CD-ROM,DVD,USB驱动器和其他可移动媒体安装在由FreeBSD操作系统驱动的家庭服务器上?

说明:您需要使用sysctl命令来设置或获取FreeBSD内核状态,以允许FreeBSD用户安装CDROM/DVD/USB设备。
在FreeBSD下,无特权的用户可以通过设置特殊的内核变量" vfs.usermount"来装载和卸载基于CDROM或DVD或USB设备的文件系统。

FreeBSD的语法,允许普通用户挂载设备

您需要以root用户身份运行以下命令:

sysctl vfs.usermount
sysctl vfs.usermount=1

值1表示您需要设置权限,以便FreeBSD允许普通用户安装CDROM,DVD,U盘式驱动器等。
接下来,您需要在/etc/devfs.conf文件中为用户添加并设置设备权限。

示例:FreeBSD允许普通用户挂载CDROM/DVD/USB设备

使用文本编辑器(例如ee命令或vim命令)编辑/etc/sysctl.conf,执行:

# vi /etc/sysctl.conf

追加以下变量,以便它可以在重新启动后持续加载:

vfs.usermount=1

在vim文本编辑器中保存并关闭文件。
在当前会话中执行以下命令:

# sysctl vfs.usermount=1

输出示例:

vfs.usermount: 0 -> 1

查找设备名称

使用camcontrol devlistegrep'ad [0-9] | cd [0-9]'/var/run/dmesg.boot命令在FreeBSD下找出CD/DVD/USB设备名称:

# camcontrol devlist

或者

# egrep 'ad[0-9]|cd[0-9]' /var/run/dmesg.boot

更新/etc/devfs.conf

下次重新启动系统时,设备所有者和权限将被重置,为了使此更改永久生效,您需要编辑/etc/devfs.conf。
在此示例中,我需要允许用户Hyman挂载名为/dev/cd0的cdrom。
编辑/etc/devfs.conf,执行:

# vi /etc/devfs.conf

添加以下两行,以便所有用户都可以在操作员组中安装USB驱动器:

own       /dev/da0       root:operator
perm      /dev/da00      0666

另外,添加以下两行,以便所有用户都可以在操作员组中安装/dev/cd0驱动器:

## allow member of operator to mount cdrom
own	   /dev/cd0	   root:operator
perm      /dev/cd0	   0660

保存并关闭文件。
可以根据系统配置随意替换/dev/cd0和/dev/da0。
您需要使用pw命令将用户添加到名为operator的组中,运行:

# pw groupmod operator -m Hyman

验证新的组成员身份,运行:

# id Hyman

输出示例:

uid=1001(Hyman) gid=1001(Hyman) groups=1001(Hyman),0(wheel),5(operator)

用户命令挂载设备

普通用户现在可以使用mount_cd9600命令将他们可以读取的设备装载到自己拥有的目录中,例如$HOME:

% mkdir ~/cdrom
% mount_cd9660 /dev/cd0 ~/cdrom
% mount

输出示例:

/dev/ada0p2 on / (ufs, local, journaled soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/cd0 on /usr/home/Hyman/cdrom (cd9660, local, nosuid, read-only, mounted by Hyman)

用户命令卸载设备

卸载设备很简单:

% umount ~/cdrom

有关更多信息,请参见FreeBSD devfs.conf(5)和sysctl手册页。