麒麟os配置usb权限有三种路径:一是启用只读权限防u盘篡改,通过安全中心→设备安全→外设管控设置;二是禁用usb存储设备,需在/etc/modprobe.d/blacklist.conf中拉黑uas和usb_storage驱动并更新initramfs后重启;三是赋予普通用户免sudo访问特定usb设备,需通过udev规则基于vendor/product id设置mode="0666"。

在麒麟OS中配置USB访问权限,需根据实际需求选择读写控制、设备级放行或普通用户免sudo访问三种路径,不能仅依赖图形界面开关解决底层权限问题。
启用USB设备只读权限(防写入)
该设置适用于防止U盘被恶意篡改或误操作覆盖数据,策略生效后所有移动储存设备将拒绝新建、删除、格式化及复制写入操作。
点击开始菜单 → 搜索“安全中心”并打开 → 左侧导航栏进入「设备安全」→ 确保「外设管控」已开启 → 向下滚动至「权限控制」区域 → 点击「移动储存」→ 将「只读权限」开关设为启用状态。
策略插拔即生效,无需重启;已挂载设备需重新插拔才能应用限制。验证时尝试向U盘复制文件,若弹出“权限不足:目标路径为只读文件系统”,说明配置成功。
禁用USB存储设备(彻底阻断识别)
此方法从内核驱动层切断USB存储设备加载能力,适用于高安全等级场景,禁用后系统不再生成/dev/sdb类设备节点,连lsblk都不可见。
以root权限打开终端,执行:sudo nano /etc/modprobe.d/blacklist.conf
在文件末尾新增两行:
blacklist uas
blacklist usb_storage
【必须执行】保存退出后立即运行:sudo update-initramfs -u,否则initramfs仍含旧驱动,重启后策略无效。
执行 sudo reboot 使配置完全生效。重启后插入U盘,dmesg | grep -i usb 不再显示storage相关枚举日志,lsblk 也不会列出新增的sdb/sdc设备。
赋予普通用户免sudo访问特定USB设备
当开发调试需用libusb/libhid直接通信(如USB HID设备、加密Key),又不想每次调用都输密码时,必须通过udev规则开放设备节点权限。
第一步:插入目标设备,执行 lsusb 获取总线号与设备号(例如 001:005)。
第二步:执行 lsusb -v -s 001:005 | grep -E "(idVendor|idProduct)",记录 idVendor 和 idProduct 值(如 idVendor=2207, idProduct=0002)。
第三步:创建规则文件:sudo nano /etc/udev/rules.d/99-usb-permission.rules
写入规则(按实际ID替换):
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0002", MODE="0666"
KERNEL=="hidraw*", ATTR{idVendor}=="2207", ATTR{idProduct}=="0002", MODE="0666"
保存后执行:sudo chmod 644 /etc/udev/rules.d/99-usb-permission.rules
重载规则:sudo udevadm control --reload-rules && sudo udevadm trigger
重新插拔设备,此时普通用户即可直接访问该USB设备,无需sudo。











