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

前言

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

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

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

    1

2.问题分析
2.1 通过命令查看ttyUSB0权限

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

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

    1
    2
    3

可以看到owner 是 root,所属用户组为 dialout
2.2 查看dialout用户组成员

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

dialout:x:20:

    1
    2
    3

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

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

    1

3.2 永久处理
3.2.1查看当前用户

dev@dev:~$ whoami

dev

    1
    2
    3

3.2.2 当前用户加入dialout组

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

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

    1

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

usermod -aG {group-name} username

    1

3.2.3 重启

重启后上述命令就生效了
4.验证

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

dialout:x:20:dev

    1
    2
    3

在这里插入图片描述

这里使用的是python读取串口数据,代码可以参考博文 Python串口读写实现
---------------------  
作者:itas109  
来源:优快云  
原文:https://blog.youkuaiyun.com/itas109/article/details/83027431  
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值