上一篇                     
               
			  Linux如何禁止USB端口使用?
- Linux
- 2025-06-10
- 2309
 在Linux系统中,可通过卸载USB存储驱动临时禁用USB存储设备(
 
 
sudo rmmod usb_storage),要完全禁用USB端口,需卸载USB控制器驱动(如
 ehci_hcd, 
 uhci_hcd),此操作需root权限且重启失效,永久禁用需修改系统配置或内核参数,物理移除或BIOS禁用更彻底。
在Linux系统中禁用USB端口是提升系统安全性的常见措施,尤其适用于企业环境、服务器或需要防止未授权数据传输的场景,以下是三种专业、可靠且经过验证的方法,根据需求选择适合的方案:
方法一:通过内核模块黑名单(永久禁用)
原理:阻止系统加载USB存储驱动模块
适用场景:长期禁用所有USB存储设备(简单高效)
步骤:
- 编辑黑名单配置文件: sudo nano /etc/modprobe.d/blacklist-usb.conf 
- 添加以下内容禁用USB存储模块: # 禁用USB大容量存储驱动 blacklist usb_storage # 防止模块自动加载 install usb_storage /bin/false 
- 保存文件并重启系统生效: sudo reboot 
验证效果:
lsmod | grep usb_storage # 无输出表示成功
优势:系统级禁用,彻底阻止USB存储设备识别
️ 注意:不影响USB键盘/鼠标等非存储设备
️ 方法二:使用udev规则(灵活控制)
原理:通过设备管理规则动态屏蔽USB设备
适用场景:按需禁用特定设备(如仅禁用U盘)
步骤:

-  创建udev规则文件: sudo nano /etc/udev/rules.d/99-block-usb.rules 
-  添加规则(根据需求选择): # 禁用所有USB存储设备 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", RUN+="/bin/sh -c 'echo 0 > /sys$env{DEVPATH}/authorized'" # 或仅禁用特定厂商设备(通过idVendor识别) # SUBSYSTEM=="block", ATTRS{idVendor}=="0781", RUN+="/bin/sh -c 'echo 0 > /sys$env{DEVPATH}/authorized'"
-  重载规则并触发:  sudo udevadm control --reload sudo udevadm trigger 
查看设备ID:
lsusb # 获取厂商ID(如SanDisk为0781)
优势:支持按厂商/设备ID精准控制
恢复:删除规则文件后重载即可
️ 方法三:使用USBGuard(高级策略管理)
原理:基于策略的USB设备访问控制框架
适用场景:企业级环境,需细粒度权限管理(白名单/黑名单)
步骤:

- 安装工具(Debian/Ubuntu): sudo apt install usbguard 
- 生成初始策略(备份原策略): sudo usbguard generate-policy > /etc/usbguard/rules.conf sudo cp /etc/usbguard/rules.conf /etc/usbguard/rules.conf.bak 
- 编辑策略文件: sudo nano /etc/usbguard/rules.conf - 添加拒绝规则(示例拒绝所有存储设备): # 允许已连接的设备(保留generate-policy生成的allow规则) # 新增规则: deny with-interface equals {08:*:*} # 08对应大容量存储设备类
 
- 添加拒绝规则(示例拒绝所有存储设备): 
- 重启服务: sudo systemctl restart usbguard 
查看设备类别:
usbguard list-devices # 查看接口类型(如08为存储设备)
优势:实时监控、审计日志、支持动态授权
审计:日志路径/var/log/usbguard/usbguard-audit.log
️ 关键注意事项
- 权限要求:所有操作需root权限
- 恢复USB: 
  - 黑名单:删除/etc/modprobe.d/下对应配置文件后重启
- udev:删除规则文件并执行sudo udevadm control --reload-rules
- USBGuard:注释deny规则并重启服务
 
- 黑名单:删除
- 影响范围: 
  - 方法1禁用所有USB存储(包括内置读卡器)
- 方法2/3可精细控制外接设备
 
- 系统兼容性: 
  - 内核黑名单:适用于所有Linux发行版
- USBGuard:需要systemd支持(Ubuntu 18.04+/CentOS 7+)
 
推荐方案选择
| 场景 | 推荐方法 | 操作复杂度 | 
|---|---|---|
| 永久禁用所有USB存储 | 内核模块黑名单 | |
| 临时禁用特定设备 | udev规则 | |
| 企业级动态访问控制 | USBGuard | 
引用说明:
- Linux内核模块文档:kernel.org/doc/Documentation
- udev规则手册:
man udev- USBGuard官方指南:USBGuard Project
操作前请备份重要数据,生产环境建议在测试系统验证。
 
  
			 
			 
			 
			