![以普通用户身份访问 ttyusb0](https://linux22.com/image/78474/%E4%BB%A5%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E8%AE%BF%E9%97%AE%20ttyusb0.png)
我正在尝试访问串行设备,该设备附加为:“/dev/ttyUSB0”。
crw-rw---- 1 root dialout 188, 0 Nov 29 15:45 ttyUSB0
为此,我创建了一个新的 udev 规则:
SUBSYSTEM=="tty", ATTR{idVendor}=="1a86", ATTR{idProduct}=="7523", SYMLINK+="ttyPWM0", MODE="0666"
所以我得到以下文件:
lrwxrwxrwx 1 root root 7 Nov 29 15:45 ttyPWM0 -> ttyUSB0
如果我尝试使用 echo 访问它,我会收到以下消息。 sudo 也有同样的问题:
$echo "hello" >> ttyPWM0
bash: ttyPWM0: Permission denied
我的问题是:如何以普通用户身份访问该文件?我需要运行一个授予其访问权限的程序。我不会将我的帐户添加到 dialout,因为我知道有一种方法可以不做这个安全漏洞。
我有一个 SalaeLogic 的设备。对于这个设备,有一个脚本:
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1001", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1003", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1004", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1005", MODE="0666"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1006", MODE="0666"
有了这个规则,我就可以启动程序并访问设备,而无需任何其他操作。我也想实现同样的目标......但是如何实现呢?
答案1
同时我的解决方案:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE="0666", SYMLINK+="ttyPWM0"