最近使用 USB转串口比较多,但是发展每次使用的时候都需要 手动修改一下 ttyUSB 读写权限, 电脑重启后就无效了
古寻找一种可以永久更改USB权限的办法:
1,查看USB转串口端口号
dmesg | grep ttyS*
2, 查看ttyUSB0的权限
ls -al /dev/ttyUSB0
当然你还可以手动用chmod
命令改变 USB 设备的权限,但是手动的权限改变只是暂时的。USB 设备会在下次重启时恢复它的默认权限。
3,作为一个永久的方式,需要创建一个基于 udev 的 USB 权限规则,它可以根据你的选择分配任何权限模式。
首先,你需要找出 USB 设备的 vendorID 和 productID。使用lsusb
命令。
lsusb -vvv
USB0的:
USB1的:
上面lsusb
的输出中,找出你的 USB 设备,并找出"idVendor"和"idProduct"字段,创建一个新的udev规
重新加载 udev 规则, 然后重启电脑:
sudo udevadm control --reload
附: udev 规则的匹配键 :
键 含义
----------------------------------------
ACTION 事件 (uevent)的行为,例如:add( 添加设备 )、remove(删除设备 )。
KERNEL 在内核里看到的设备名字,比如sd*表示任意SCSI磁盘设备
DEVPATH 内核设备录进,比如/devices/*
SUBSYSTEM 子系统名字,例如:sda的子系统为 block。
BUS 总线的名字,比如IDE,USB
DRIVER 设备驱动的名字,比如ide-cdrom
ID 独立于内核名字的设备名字
SYSFS{ value} sysfs属性值,他可以表示任意
ENV{ key} 环境变量,可以表示任意
PROGRAM 可执行的外部程序,如果程序返回0值,该键则认为为真(true)
RESULT 上一个PROGRAM调用返回的标准输出。
NAME 根据这个规则创建的设备文件的文件名。
注意:仅仅第一行的NAME描述是有效的,后面的均忽略。
如果你想使用使用两个以上的名字来访问一个设备的话,可以考虑SYMLINK键。
SYMLINK 为 /dev/下的设备文件产生符号链接。由于 udev只能为某个设备产生一个设备文件,
所以为了不覆盖系统默认的 udev规则所产生的文件,推荐使用符号链接。
OWNER 设备文件的属组
GROUP 设备文件所在的组。
MODE 设备文件的权限,采用8进制
RUN 为设备而执行的程序列表
LABEL 在配置文件里为内部控制而采用的名字标签(下下面的GOTO服务)
GOTO 跳到匹配的规则(通过LABEL来标识),有点类似程序语言中的GOTO
IMPORT{ type} 导入一个文件或者一个程序执行后而生成的规则集到当前文件
WAIT_FOR_SYSFS 等待一个特定的设备文件的创建。主要是用作时序和依赖问题。
PTIONS 特定的选项:
last_rule 对这类设备终端规则执行;
ignore_device 忽略当前规则;
ignore_remove 忽略接下来的并移走请求。
all_partitions 为所有的磁盘分区创建设备文件。
参考:https://linux.cn/article-6449-1.html?utm_source=weixin