【问题标题】:Permissions to resources in Linux developmentLinux 开发中的资源权限
【发布时间】: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


【解决方案1】:

也许您可以在整个会话中使用超级用户权限: 在你做任何事情之前,输入 id - 输出是你当前登录的用户和用户组。

现在使用以下命令:

sudo bash

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

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

现在看看能不能打开虚拟端口。

【讨论】:

  • 您好,感谢您的回答。我知道我可以使用 root 权限打开端口,但我试图找到一种对任何用户都有效的方法。我的意思是,假设有人从我的网站下载了该程序。我打算创建一个包,以便他们可以轻松安装应用程序,而无需执行任何 SU 或类似操作。
猜你喜欢
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2019-09-19
  • 2013-10-05
  • 1970-01-01
相关资源
最近更新 更多