完全禁用 Ubuntu 12.04 LTS 上所有用户的 CD/DVD Rom 访问?

完全禁用 Ubuntu 12.04 LTS 上所有用户的 CD/DVD Rom 访问?

我们使用的是 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?

我们尝试了以下所有方法,

  1. 使用系统 BIOS

    不幸的是,笔记本电脑 BIOS 没有禁用 DVD 驱动器的选项。它只有禁用从 DVD 启动的选项,我们这样做了

  2. 使用 /etc/group

    根据该文件http://ubuntuguide.org/wiki/Ubuntu:Precise,以下是注意,

    “要使用 cdrom,您必须属于 cdrom。要使用热插拔设备,您必须属于 plugdev。”

    我们正在使用的 Unix 用户(用户 tngusr1)不属于 /etc/group 文件中的任何组。

    结果:用户可以访问 CD/DVD ROM,如果用户放入空白光盘(CD/DVD),那么它将加载光盘,如果安装了 brasero,用户可以写入新光盘

  3. 在 /media 和 /cdrom 上使用 chmod

    更改了 /cdrom 和 /media 的权限

    • chmod 000 /cdrom
    • chmod 000 /media

    结果:但没什么区别。影响是如果用户放入有内容的光盘(CD/DVD),则不会加载。但如果用户放入空白光盘(CD/DVD),则将加载光盘,如果安装了 brasero,则用户可以写入新光盘

  4. 禁用 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

  5. 禁用 CDROM 的自动挂载

    基于文档在这里禁用 CDROM 的自动挂载

    结果:可能对初学者有帮助。但任何拥有 1 个月 Unbuntu 使用经验的人都知道如何重新启用它并加载 CDR 空白光盘(CD/DVD)并写入光盘。此外,如果用户从菜单打开文件资源管理器,左侧树上会显示空白光盘,表明光盘已成功加载。

  6. 定义自定义挂载点

    根据以下条件定义自定义挂载点详情请点击此处

    在 /etc/fstab 中添加以下行,希望新 CD 能够安装在 /media 上,因为我们确实 chmod 000 /media希望它不会加载光盘

    /dev/cdrom /media auto user,noauto,exec,utf8 0

    结果:没有区别。空白光盘照常加载,用户可以写入新的 DVD rom

  7. 通过 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

相关内容