linux - 使用具有简单用户权限的/dev/ttyS0 之类的串行端口

标签 linux

我在使用 UBUNTu 12.04。我想在使用PC串口的用户模式下运行一个程序(准确地说是一个java程序)。打开串口/dev/ttyS0,总是抛出端口忙异常,不太对:

只是因为权限问题不能使用端口。该端口属于 root/dialout。当我手动将 ttyS0 的组设置为用户所属的组时,效果很好。但是有两个缺点:

  • 重启后,设置消失,必须重新应用
  • 该程序是有意使用 java 编写的,旨在易于使用(和跨平台)而无需安装麻烦。我不想通过使用 sudo chgrp、将他们的组添加到拨出组或在/etc/rc 中添加 chgrp 命令之类的方式来混淆我 future 的用户。

问题是:

如何管理允许具有用户权限的程序访问串行端口而无需(过多)要求用户的事件?欢迎 java 程序内部和外部的解决方案:-)

干杯, 塔里克

最佳答案

在您描述的情况下,您应该将您的用户添加到拨出组。组通常用于为用户提供特定的访问权限,例如对设备文件的读/写权限。

当您想要分发软件时,我看不到一个简单的解决方案。系统管理员负责设置用户和组的关系,并确保用户具有执行程序的必要权限。

关于linux - 使用具有简单用户权限的/dev/ttyS0 之类的串行端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16757868/

相关文章:

linux - gprof错误: profile file has unsupported version

linux - Linux的mv内部是如何工作的?

java - 在 linux 中用 java 打开一个 eml 文件

linux - 使用 G++ 在 Linux 中编写 ping 程序时从哪里开始

java - 我可以使用 java 策略文件通过 sudo 安全地运行不受信任的应用程序吗

java - 命令的 java run.exec 和 shell 执行之间有什么区别吗?

linux - 删除单个 Wine 包 Ubuntu 15.04

c++ - 如何在 Linux 中检测系统时间的变化?

c - 是否有用于位交换的标准 C 函数?

linux - AWK 比较两个单独文件中的两列