读/写到没有根的串行端口?


31

我正在编写一个应用程序以从Fedora14中的一个串行端口读/写,并且当我以root身份运行它时,它的工作效果很好。但是,当我以普通用户身份运行它时,无法获得访问设备(/ dev / ttySx)所需的特权。这有点糟糕,因为现在我实际上无法使用Eclipse调试该死的东西。

我尝试使用sudo运行Eclipse,但是它破坏了我的工作区,甚至无法打开项目。因此,我想知道是否有可能降低写入/ dev / ttySx的访问要求,以便任何普通用户都可以访问它。这可能吗?

Answers:


46

访问串行端口的权限由设备文件(例如/dev/ttyS0)的权限确定。因此,您所需要做的就是安排设备归您所有,或者(更好)将自己放入拥有设备的组中,或者(如果我认为是Fedora支持的话)安排设备属于在控制台上登录的用户。

例如,在我的系统(不是Fedora)上,/dev/ttyS0是用户root和组所拥有的dialout,为了能够访问串行设备,我将自己添加到dialout组中:

usermod -a -G dialout MY_USER_NAME

1
我将接受这个,因为它使我走上了正确的道路。对于Fedora,在创建用户后使用命令usermod。有问题的组也对我来说是拨出的:sudo usermod -a -G拨出<用户名>。干杯。
iegod 2011年

5
请注意,您可能需要注销并登录后才能出现在新组中
JanŠpaček

1
由大众需求:sudo usermod -a -G dialout $USER:-)
Ciro Santilli新疆改造中心法轮功六四事件

0

许多发行版使用组成员身份来启用对串行端口的访问。不过,我不知道有关Fedora的详细信息。


0

我认为您可以将自己添加到sudoers文件中,该文件将允许您指定一组命令作为命令别名,您无需密码即可执行该命令。您可以在Ubuntu docs中找到有关sudoers文件的出色教程。

然后,您可以正常运行eclipse,并且无需root权限即可执行那些特定命令。


-2

我也有这个问题,除了将用户添加到拨出组之外,您还需要授予该用户访问/ dev的权限。只需su- >输入root密码-> chmod -R 777 / dev -R,表示递归模式,该文件夹中的所有内容都具有相同的权限

问题是,每次重新启动计算机或插拔设备时都需要这样做!!!


3
chmod -R 777 /dev是一个非常糟糕的主意。
RalfFriedl '18

Yaah同意,如果对此还有其他建议,那将很棒
Tunu Yolim Ngajilo '18 -10-11

我想知道您是否需要注销并重新登录,就像对已接受答案的评论一样?这常常使人绊倒。
sourcejedi

让所有用户自由访问/ dev /中的所有内容是极其不安全的。请不要这样做。
Unfa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.