解决Linux非root用户读写串口权限问题

解决Linux非root用户读写串口权限问题


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

目录

文章目录

  • 解决Linux非root用户读写串口权限问题
    • @[toc]
    • 前言
    • 1. 问题描述
    • 2.问题分析
      • 2.1 通过命令查看ttyUSB0权限
      • 2.2 查看dialout用户组成员
    • 3.问题处理
      • 3.1 临时处理
      • 3.2 永久处理
        • 3.2.1查看当前用户
        • 3.2.2 当前用户加入dialout组
        • 3.2.3 重启
    • 4.验证

系统:Ubuntu 16.04.5


前言

在Linux中,对于非root用户,默认没有串口设备的读写权限。本文将讨论如何让普通用户拥有串口设备的读写权限。

1. 问题描述

通过编程读写串口打开设备时,提示没有权限

[Errno 13] Permission denied: '/dev/ttyUSB0'

2.问题分析

2.1 通过命令查看ttyUSB0权限

dev@dev:~$ ls -l /dev/ttyUSB0

crw-rw---- 1 root dialout 4, 64 10月 12 14:08 /dev/ttyUSB0

可以看到owner 是 root,所属用户组为 dialout

2.2 查看dialout用户组成员

dev@dev:~$ grep 'dialout' /etc/group

dialout:x:20:

我们发现普通用户dev并没有在dialout组。
因此,我们将普通用户dev加入到dialout就可以解决这个问题。

3.问题处理

3.1 临时处理

dev@dev:~$ sudo chmod 777 /dev/ttyUSB0

3.2 永久处理

3.2.1查看当前用户

dev@dev:~$ whoami

dev

3.2.2 当前用户加入dialout组

处理命令(dev为我的用户名,需要修改为自己用户名)

dev@dev:~$ sudo usermod -aG dialout dev

注意:
新增用户到用户组使用usermod 命令
命令参数如下:

usermod -aG {group-name} username

3.2.3 重启

重启后上述命令就生效了

4.验证

dev@dev:~$ grep 'dialout' /etc/group

dialout:x:20:dev

在这里插入图片描述

这里使用的是python读取串口数据,代码可以参考博文 Python串口读写实现


Refrence:

觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
解决Linux非root用户读写串口权限问题_第1张图片
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

你可能感兴趣的:(Linxux,串口)