Linux:执行期间意外的权限

时间:2017-09-07 10:58:51

标签: linux access-rights

我正在尝试连接到覆盆子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

1 个答案:

答案 0 :(得分:1)

您似乎已将自己添加到dialout组,但尚未注销并重新登录。当前会话的组凭据不会动态更新。这就是su user -c ...有效的原因,因为它会使用您更新的成员资格启动新会话。

退出,重新登录,事情应该正常。

相关问题