我在使用 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/