Ubuntu系统中,如果要使用USB节点,必须获取使用权限,临时获取使用chmod 777 +节点路径即可。
sudo chmod 777 dev/bus/usb/005/002
但是每次关机权限就会恢复,如果是开发编程,使用这个方式获取权限太过复杂。
下面说一种永久获取权限的方式。
首先,在根目录下,使用lsusb指令查看usb的位置

可以看到拔插USB后,多了一个ID:0483:5760,位置在Bus001,Device047。
查看节点权限。
ls -all /dev/bus/usb/001
可以看到刚才的节点047,权限为root。
查看节点属性
udevadm info --attribute-walk --name=/dev/bus/usb/001/047

记住红色方框里的内容,下边需要用到。
添加roals规则。
sudo vim /etc/udev/rules.d/50-usb.rules
SUBSYSTEMS=="usb",ATTRS{idVendor}=="0483",ATTRS{idProduct}=="5760",MODE="0777",OWNER="jc",GROUP="jc"
其中SUBSYSTEM,ATTRS的属性通过上图写上对应的值,“==”表示匹配关系,匹配该节点信息,MODE赋值权限信息为777,OWNER和GROUP表示用户组,赋值给当前用户jc,这个根据自己用户名修改。
写完后保存退出。
sudo udevadm control --reload
输入指令重新加载,拔插usb设备,再次输入指令查看用户组
ls -all /dev/bus/usb/001

可以看到节点048(拔插导致节点变化,编号+1)的权限为jc,即当前用户组。
这样重启也可以继续保持USB的使用权限了。
在Ubuntu系统中,为了方便开发编程时使用USB设备,可以通过设置udev规则实现权限的永久授予。首先,使用lsusb查看USB设备的位置和ID,然后用udevadm info --attribute-walk --name=/dev/bus/usb/...来检查节点属性。接着,在/etc/udev/rules.d/创建一个规则文件,例如50-usb.rules,添加相应的SUBSYSTEMS, ATTRS, MODE, OWNER和GROUP规则。最后,用udevadm control --reload重载规则,并确认权限已更改为当前用户。这样,即使重启,USB设备仍能保持使用权限。
894





