读/写没有root的串行端口?

ieg*_*god 42 linux fedora not-root-user serial-port

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

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

Gil*_*il' 59

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

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

usermod -a -G dialout MY_USER_NAME
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您可能需要注销并登录才能出现在新组中 (8认同)
  • 应大众需求:`sudo usermod -a -G dialout $USER` :-) (5认同)