0

我对 Linux 开发很陌生,并且在权限方面遇到了一些问题。让我们详细解释一下:我正在使用 Mono 创建一个将访问串行端口的程序,当我尝试打开一个串行端口(虚拟 COM USB 串行)时,我得到一个异常说访问受到限制。

当然,使用“sudo chmod 777 /dev/ttyUSB0”可以轻松解决此问题,但我不认为这是标准程序。由于我打算将应用程序作为开源分发,我想避免给用户带来麻烦,所以有没有办法让任何可能的端口自动执行此操作?也许在某处定义策略?这与创建可分发包有关吗?我使用了一些终端程序,它们可以访问任何串行端口而无需请求权限,所以我很确定有办法做到这一点。

仅供参考,我使用的是 USB 转串口转换器,因此端口可以更改(不固定);我的是ttyUSB0。

请,请,请,请,如果有人能给我任何关于如何处理这些事情的线索,我将不胜感激。

非常感谢您提前。

解决方案

尽管很久以前有人问过这个问题,但我想写下我的问题的答案:正如@sawdust 所建议的那样,问题是我不属于拨出组。因此,将当前用户添加到拨出组可以解决问题,之后我可以访问串行端口。

4

1 回答 1

0

也许您可以在整个会话中使用超级用户特权:在您执行任何操作之前,输入 id - 输出是您当前登录的用户和用户组。

现在使用以下命令:

须藤重击

回复可能是密码请求,输入您的密码,现在您应该以超级用户身份登录。

要验证,再次输入 id,现在您的用户应该是 0,以及您的用户组。

现在看看是否可以打开虚拟端口。

于 2015-06-02T14:30:10.250 回答