我们使用的是 Ubuntu 12.04 LTS。以下是uname -a
命令的输出:Linux trainingmac1 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
我们是培训机构,我们正在尽力为所有笔记本电脑用户禁用 CD/DVD 驱动器。
这里列出的选项似乎都不适用于 Ubuntu 12.04 LTS, 如何在 Linux 中为普通用户禁用 CD-ROM 和 USB?
我们尝试了以下所有方法,
使用系统 BIOS
不幸的是,笔记本电脑 BIOS 没有禁用 DVD 驱动器的选项。它只有禁用从 DVD 启动的选项,我们这样做了
使用 /etc/group
根据该文件http://ubuntuguide.org/wiki/Ubuntu:Precise,以下是注意,
“要使用 cdrom,您必须属于 cdrom。要使用热插拔设备,您必须属于 plugdev。”
我们正在使用的 Unix 用户(用户 tngusr1)不属于 /etc/group 文件中的任何组。
结果:用户可以访问 CD/DVD ROM,如果用户放入空白光盘(CD/DVD),那么它将加载光盘,如果安装了 brasero,用户可以写入新光盘
在 /media 和 /cdrom 上使用 chmod
更改了 /cdrom 和 /media 的权限
chmod 000 /cdrom
chmod 000 /media
结果:但没什么区别。影响是如果用户放入有内容的光盘(CD/DVD),则不会加载。但如果用户放入空白光盘(CD/DVD),则将加载光盘,如果安装了 brasero,则用户可以写入新光盘
禁用 Hal 的 CD-ROM 轮询
根据以下文档“禁用 Hal 的 CD-ROM 轮询”中列出的步骤 href:www.ehow.com/how_7509420_disable-hals-cdrom-polling.html
shell> hal-disable-polling --device /dev/scd0
结果:没有区别。空白光盘照常加载,用户可以写入新的 DVD rom
禁用 CDROM 的自动挂载
基于文档在这里禁用 CDROM 的自动挂载
结果:可能对初学者有帮助。但任何拥有 1 个月 Unbuntu 使用经验的人都知道如何重新启用它并加载 CDR 空白光盘(CD/DVD)并写入光盘。此外,如果用户从菜单打开文件资源管理器,左侧树上会显示空白光盘,表明光盘已成功加载。
定义自定义挂载点
根据以下条件定义自定义挂载点详情请点击此处,
在 /etc/fstab 中添加以下行,希望新 CD 能够安装在 /media 上,因为我们确实
chmod 000 /media
希望它不会加载光盘/dev/cdrom /media auto user,noauto,exec,utf8 0
结果:没有区别。空白光盘照常加载,用户可以写入新的 DVD rom
通过 UDEV 规则管理
在文件夹“/etc/udev/rules.d/81-cddrive.rules”中创建了一条 UDEV 规则,如下所示,
ENV{ID_CDROM}=="?*", RUN+="/opt/devscripts/checkcd.sh"
计划是,当我们确定“/opt/devscripts/checkcd.sh”被调用时,从此自动重启系统。
结果:没有区别。到目前为止,尽管我们多次插入空白光盘,每次光盘都会加载,但脚本从未被调用。不确定我们是否使用此处的方法尝试使用 UDV 规则来监控 CDROM 使用情况。
编辑(新): 8. 通过 UDEV 初始化规则进行更多尝试
8.1) 修改了以下文件并注释了所有为 CD/DVD Rom 驱动器创建 /dev 映射的行,
- /lib/udev/rules.d/75-cd-aliases-generator.rules 和
- /etc/udev/rules.d/70-persistent-cd.rules
8.2)在此处创建一个新文件/etc/udev/rules.d/10-custom-cd.rules并添加了以下规则,
SUBSYSTEMS=="scsi", DRIVERS=="sr", OPTIONS+="ignore_device",OPTIONS+="last_rule"
SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{ID_PATH}=="pci-0000:00:1f.2-scsi-5:0:0:0", OPTIONS+="ignore_device", OPTIONS+="last_rule"
也尝试了这个,删除 SUBSYSTEMS=="scsi"
DRIVERS=="sr", OPTIONS+="ignore_device", OPTIONS+="last_rule"
8.3)删除以下所有/dev条目,
sudo rm /dev/cdrom /dev/cdrw /dev/dvdrw /dev/dvd /dev/sr0
笔记:“/dev/sr0” 不断自动创建,其他文件夹在最近更新后再次创建。但如果这些文件夹正常工作,可以继续删除它们 /etc/rc.local
结果:注释掉 CDROM 相关的 UDEV 规则,重启机器后,再次手动删除 /dev/sr0,没有激活任何 CDROM 相关的 UDEV 规则(新创建的 OPTIONS+="ignore_device" 规则除外),/dev 中也没有任何条目,空白光盘照常加载,用户可以写入新的 DVD Rom
尝试了互联网上列出的所有方法。请提供一个选项来禁用笔记本电脑上的 cdrom 安装。目标是如果用户插入任何类型的光盘(空白、音频、带有文件),ubuntu 根本不应该安装 cdrom。如果 cdrom 对所有用户都禁用,那也没关系。
编辑:添加 UDEV 信息以获取设备信息。遵循“udevadm”的输出
- (其他家长级别信息)
- 查看父设备'/devices/pci0000:00/0000:00:1f.2/host5/target5:0:0/5:0:0:0':
- 内核=“5:0:0:0”
- 子系统==“scsi”
- 司机==“sr”
- ATTRS{device_blocked}=="0"
- ATTRS{类型}=="5"
- ATTRS{scsi_level}=="6"
- ATTRS{供应商}=="hp "
- ATTRS{型号}=="DVDWBD TS-LB23P "
- ATTRS{rev}=="0100"
- ATTRS{state}=="正在运行"
- ATTRS{超时}=="30"
- ATTRS{iocounterbits}=="32"
- ATTRS{iorequest_cnt}=="0x11d"
- ATTRS{iodone_cnt}=="0x114"
- ATTRS{ioerr_cnt}=="0x2"
- ATTRS{evt_media_change}=="0"
- ATTRS{dh_state}=="分离"
- ATTRS{queue_depth}=="1"
- ATTRS{queue_ramp_up_period}=="120000"
- ATTRS{queue_type}=="无
- (其他儿童级别信息)
答案1
您可以将名为 modprobe 的内核模块放入sr_mod
黑名单。这将阻止它在系统启动时自动加载:
echo "blacklist sr_mod" >> /etc/modprobe.d/blacklist-sr_mod.conf
如果没有加载 SCSI cdrom 驱动程序,系统根本无法发现该设备。但是这种解决方案对一些经验丰富的用户不起作用,因为他们可以通过 sudo modprobe sr_mod
从终端调用手动加载模块。
如果您等待更彻底的解决方案,您可以简单地从文件系统中删除模块文件:
rm /lib/modules/$(uname -r)/kernel/drivers/scsi/sr_mod.ko
但不要忘记做一些备份,因为在完成此操作后,下次重启后您将无法使用 CD-ROM 驱动器
答案2
为什么不直接拔掉光驱电缆呢?
答案3
除了禁用设备,也许您还可以禁用对设备的访问?eject 命令有一个 -i 选项,因此您可以尝试:
eject -i on /dev/sr0
首先,您需要更改其中一条 udev 规则,如下所示:
https://unix.stackexchange.com/questions/104791/how-can-i-disable-the-button-of-my-cd-dvd-drive