是否有读取串行端口的特定功能?

Is there is a specific capability to read a serial port?

我想从连接到 USB 并被系统视为串行设备的 GPS 读取数据。我不想使用 chmod u+ssudo 并只为流程提供执行此操作的最低能力。

为了测试,我使用了 cat 命令:

sudo cat /dev/ttyACM0

这行得通,但是我可以给 cat 读取串口的特定能力吗?

我尝试了 setcap cap_sys_rawio+pcap_sys_tty_config+p 都没有成功。 我的想法是只给二进制文件完成任务所需的最低权限。

通常 ttys 属于一个类似于 dialup 的组。这主要用于旧的 cu 程序。

您可以(我也可以)使用的一件事是将您自己包含在 dialup 组中,因为您会看到未使用的 ttys 对它们所属的所有者和组具有写入权限。

测试时不要忘记注销并重新登录,因为要获取您所属群组列表中dialup群组的群组ID需要通过login(1)程序。

注意

在我的系统(FreeBSD 11.x)上,gps 属于组 operator,而我(我的帐户)属于该组。我可以打开 gps(带有伪终端的蓝牙设备)

在linux中,我使用/dev/rfcomm0(蓝牙)串口设备。在 debian 中,/dev/ttyS0[0-3] 属于 dialout 组。您可以使用该组。