【问题标题】:Linux: Unexpected rights during executionLinux:执行期间的意外权限
【发布时间】:2017-09-07 20:58:20
【问题描述】:

我正在尝试连接到树莓派上的 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

【问题讨论】:

    标签: linux access-rights


    【解决方案1】:

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

    退出,重新登录,一切应该会正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2021-11-16
      • 2013-07-14
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多