我正在尝试连接到覆盆子PI上的COM端口“TTYACM0”,但是当我尝试用我的用户打开它时,它失败了。当我作为sudo执行时它运行良好。 我检查了我的用户权限,并且它在所有需要的组中:
user : user root tty dialout sudo i2c gpio
这是端口:
crw-rw---- 1 root dialout 166, 0 Sep 7 12:26 ttyACM0
当用户处于拨出状态时,它应该可以正常工作。
有趣的是,当我执行我的应用程序时,我的应用程序失败了:
user$ ./application
当我从同一个提示符输入时成功:
user$ su user -c './application'
我真的不明白两条线之间的区别。 这个应用程序以前工作过,以前工作得非常好,也适用于我的linux计算机(两者都是用QT编译的),但这也涉及其他应用程序,如Putty。 你能帮我解决这个问题吗?
谢谢!
ps:我是合适的用户:
user$ whoami
user
答案 0 :(得分:1)
您似乎已将自己添加到dialout
组,但尚未注销并重新登录。当前会话的组凭据不会动态更新。这就是su user -c ...
有效的原因,因为它会使用您更新的成员资格启动新会话。
退出,重新登录,事情应该正常。