FreeBSD允许普通用户挂载CDROM/DVD/USB设备
如何允许任何普通用户(例如我的儿子或妻子)将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 devlist
或egrep'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手册页。