【发布时间】:2015-06-02 14:23:15
【问题描述】:
我对 Linux 开发还很陌生,我在权限方面遇到了一些问题。让我们详细解释一下:我正在使用 Mono 创建一个将访问串行端口的程序,当我尝试打开一个串行端口(虚拟 COM USB 串行)时,我得到一个异常说访问受到限制。
当然,使用“sudo chmod 777 /dev/ttyUSB0”可以轻松解决此问题,但我不认为这是标准程序。 由于我打算将应用程序作为开源分发,我想避免给用户带来麻烦,所以有没有办法让任何可能的端口自动执行此操作?也许在某处定义策略?这与创建可分发包有关吗? 我使用了一些终端程序,它们可以访问任何串行端口而无需请求权限,所以我很确定有办法做到这一点。
仅供参考,我使用的是 USB 转串口转换器,因此端口可以更改(不固定);我的是 ttyUSB0。
请,请,请,请,如果有人能给我任何关于如何处理这些事情的线索,我将不胜感激。
非常感谢您。
解决方案
尽管很久以前有人问过这个问题,但我想写下答案 我的问题:正如@sawdust 所建议的那样,问题是我不属于拨出组。因此,将当前用户添加到拨出组可以解决问题,之后我可以访问串行端口。
【问题讨论】:
-
这不是关于编程,而是更多关于权限,所以我认为它可能会在服务器故障或超级用户得到更多答案
-
确保您的用户名属于拥有这些端口的组(例如“dialout”组)。
-
嗨,谢谢@sawdust,标准程序是什么?创建一个包并在安装后将应用添加到该组?
标签: c# linux permissions serial-port superuser