我想从连接到 USB 并被系统视为串行设备的 GPS 读取数据。我不想使用chmod u+s
norsudo
并且只为该过程提供最低限度的功能来做到这一点。
为了测试,我使用了以下cat
命令:
sudo cat /dev/ttyACM0
这行得通,但我可以赋予cat
读取串行端口的特定功能吗?
我试过了setcap cap_sys_rawio+p
,cap_sys_tty_config+p
但没有成功。我的想法是赋予二进制文件完成其任务所需的最低权限。
我想从连接到 USB 并被系统视为串行设备的 GPS 读取数据。我不想使用chmod u+s
norsudo
并且只为该过程提供最低限度的功能来做到这一点。
为了测试,我使用了以下cat
命令:
sudo cat /dev/ttyACM0
这行得通,但我可以赋予cat
读取串行端口的特定功能吗?
我试过了setcap cap_sys_rawio+p
,cap_sys_tty_config+p
但没有成功。我的想法是赋予二进制文件完成其任务所需的最低权限。
通常 ttys 属于一个类似于 的组dialup
。这主要用于旧cu
程序。
您可以使用的一件事(我也这样做)是将自己包含在dialup
组中,因为您会看到未使用的 tty 对它们所属的所有者和组具有写权限。
测试时不要忘记注销并重新登录,因为要dialup
在您所属的组列表中获取组的组ID,需要通过login(1)
程序。
在我的系统(FreeBSD 11.x)上,gps 属于 group operator
,而我(我的帐户)属于那个组。我可以打开 gps(带有伪终端的蓝牙设备)
在 linux 中,我使用/dev/rfcomm0
(蓝牙)串行设备。在debian中,/dev/ttyS0[0-3]
属于dialout
组。您可以使用该组。