解决Linux下非root用户使用串口报错: /dev/ttyS0: Permission denied

时间:2022-11-13 09:32:22

在客户现场部署应用时,需求变更,需要从串口取资料,但是发现tomcat无法访问/dev/ttys0

[tomcat@ZLGL-Node1 ~]$ cat /dev/ttyS*
cat: /dev/ttyS0: Permission denied
cat: /dev/ttyS1: Permission denied
cat: /dev/ttyS2: Permission denied
cat: /dev/ttyS3: Permission denied

常规做法就是chmod 777 /dev/ttyS*
这个做法太粗鲁了,而且会让所有用户都可以访问串口。
那么有没有优美一点的办法呢,答案是有的。
首先看看ttyS*所属组别

[root@ZLGL-Node1 ~]# ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Dec 16 08:19 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Dec 16 08:19 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Dec 16 08:19 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Dec 16 08:19 /dev/ttyS3

好了,只要把tomcat用户加入dialout组就可以了。

usermod -a -G dialout tomcat