是否有允许我的应用程序具有root权限的系统函数?

mat*_*975 2 c linux embedded serial-port root

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

thk*_*ala 10

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

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

chmod a+rw /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

要提供更细粒度的控制,您可以创建单独的用户组和chgrp串行端口设备节点:

chgrp serial /dev/ttyS0
chmod 0660 /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

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

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

chown appuser /dev/ttyS0
chmod 0600 /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

仅仅访问设备节点需要root权限不是正确的方法......