有没有系统function允许我的应用程序具有root权限?

我有一个在启动时自动运行的embedded式系统上运行的应用程序。 由于某些function涉及读取和写入串行端口,因此我需要该软件具有root权限。 在我的桌面上,这是没有问题的,因为我可以像sudo一样运行该程序,并没有问题。 在我的embedded式设备上,我无法做到这一点,所以我所希望的是,有一些Linux系统的function,将允许代码不能以root身份运行,但可以有root权限访问串口比需要。 我意识到,从安全angular度来看,这可能不是一个好主意,但是由于它在embedded式设备上,我别无select。

您是否考虑过更改串口设备节点的权限,以便您的应用程序可以访问它?

例如,允许每个应用程序访问/dev/ttyS0串行端口:

 chmod a+rw /dev/ttyS0 

为了提供更细粒度的控制,你可以创建一个单独的用户组和chgrp你的串口设备节点:

 chgrp serial /dev/ttyS0 chmod 0660 /dev/ttyS0 

之后,您只需确保用户的应用程序在serial用户组中运行。

或者你甚至可以让应用程序用户成为设备节点的唯一所有者:

 chown appuser /dev/ttyS0 chmod 0600 /dev/ttyS0 

只需要root权限来访问设备节点是不正确的方法…