在银河麒麟V10系统中禁用USB存储设备,其实并不复杂,但需要明确一个核心问题:您是希望彻底封锁所有USB接口,还是仅仅针对存储设备?前者会同时禁用键盘、鼠标、蓝牙等外设,风险极高,通常不被采用;后者才是企业合规与日常安全加固的标准做法。以下三套方案均经过实际验证,覆盖内核层、策略层到设备级精准拦截,可满足不同场景下的需求。

方法一:内核模块黑名单(最彻底)
这一方法最为彻底——直接阻止usb-storage和uas这两个核心驱动加载。重启后,/dev/sdX等设备节点根本不会生成,连挂载的机会都没有。适用于封闭环境、无特殊USB设备需求的场景。
以root权限打开终端,执行:sudo nano /etc/modprobe.d/blacklist.conf
在文件末尾添加两行(注意拼写:blacklist 不是 blasklist):
blacklist uas
blacklist usb_storage
保存退出后,关键一步不能省略:sudo update-initramfs -u。如果跳过此步骤,initramfs镜像中仍保留旧驱动,重启后策略将失效。
执行sudo reboot使配置生效。重启后插入U盘测试,运行dmesg | grep -i "usb.*stor",应无任何输出;lsblk也不会显示sdb、sdc等新设备。
方法二:安全中心外设管控(图形界面快速启用)
该方法适用于已安装kylin-security-center包、可统一推送策略的办公终端。插拔U盘立即生效,且不影响键盘、鼠标等其他USB设备正常使用。
点击开始菜单 → 搜索“安全中心”并打开。进入左侧导航栏「设备安全」→ 确认「外设管控」开关已开启。向下滚动至「权限控制」区域 → 点击「移动储存」→ 将「禁止USB存储设备接入」设置为启用。
【注意】此功能依赖dbus服务与kylin-security-center守护进程。如果执行systemctl is-active kylin-security-center返回inactive,则此方法不可用,需先检查服务状态。
方法三:udev规则按VID/PID拦截(精准白名单)
如果环境中必须保留加密UKey、专用扫描仪等特定USB设备,则需采用此方法。它在设备节点创建之前就将匹配的设备丢弃,绕过内核模块限制,灵活性最高。
第一步:插入需要禁用的U盘,执行lsusb,找到对应的总线号与设备号(例如001:005)。
第二步:执行lsusb -v -s 001:005 | grep -E "(idVendor|idProduct)",记下idVendor和idProduct的值(例如idVendor=0781,idProduct=5567)。
第三步:创建规则文件:sudo nano /etc/udev/rules.d/99-usb-block.rules
写入规则(注意每行末尾不要有空格,引号为英文半角):
ACTION=="add", ATTRS{idVendor}=="0781", ATTRS{idProduct}=="5567", ENV{UDISKS_IGNORE}="1", RUN+="/bin/sh -c 'echo 0 > /sys$devpath/device/delete'"
保存后重载udev规则或重启系统,该特定U盘将无法被识别。其他不匹配此VID/PID的设备仍可正常使用,真正实现按需禁用。
