Ubuntu系统下连接串口设备时出现Permission denied的解决方法
- 1、前言
- 2、问题
- 3、解决方法
-
- [3.1 看一下串口设备详细信息](#3.1 看一下串口设备详细信息)
- [3.2 将当前用户加入 dialout 组](#3.2 将当前用户加入 dialout 组)
- [3.3 重启](#3.3 重启)
- [3.4 查看组](#3.4 查看组)
- [3.5 成功解决](#3.5 成功解决)
- 4、总结
1、前言
|--------------------------------------------------------------------|
| 记录一下Ubuntu系统下连接串口设备时出现Permission denied的解决方法,方便自己回顾,也可以给有需要的人提供帮助。 |
2、问题
|----------------------------------------|
| Qt程序连接串口设备没有问题,但运行时出现Permission denied |

3、解决方法
|-----------------------------------------------|
| 主要问题是当前用户是普通用户,不在dialout组,把当前用户加入dialout组就解决了 |
3.1 看一下串口设备详细信息
bash
ls -l /dev/ttyUSB0

root 是 owner
dialout 是 group
其他用户不能访问(rw----)
|---------------------------------------------------------------------|
| Qt 程序是普通用户运行(h 用户),而 h 用户 不在 dialout 组,所以不能访问串口 → Permission denied |
3.2 将当前用户加入 dialout 组
cpp
sudo usermod -a -G dialout $USER
|------------|
| 下面是这条指令的解释 |
| 部分 | 含义 | 作用 |
|---|---|---|
sudo |
以管理员权限运行 | 修改用户组需要管理员权限 |
usermod |
修改用户设置的命令 | Linux 用来调整用户属性、组等 |
-a |
append(追加) | 追加到组,不会删除用户现有组 |
-G dialout |
设置附加用户组为 dialout | dialout 组拥有串口设备权限(/dev/ttyUSB0) |
$USER |
当前用户 | 将当前用户加入 dialout 组 |

3.3 重启
|----------|
| 添加完组后要重启 |
cpp
sudo reboot

3.4 查看组
|----------------------------------|
| 重新登录后看一下当前用户组,可以看到当前用户在dialout组了 |
bash
groups

3.5 成功解决
|-------------------|
| 重新运行之后,可以成功连接和控制了 |

4、总结
|---------------------------------------------------------------------------------------------------------------------------------------|
| 以上就是解决Ubuntu系统下Qt程序连接串口设备没有问题,但运行时出现Permission denied的整个过程了,浏览过程中,如若发现错误,欢迎大家指正,有问题的可以评论区留言或者私信。最后,如果大家觉得有所帮助的话,可以点个赞,谢谢大家!祉猷并茂,顺遂无虞! |