是否有系统函数允许我的应用程序拥有root权限?
问题描述:
我有一个在启动时自动运行的嵌入式系统上运行的应用程序。由于某些功能涉及读取和写入串行端口,因此我需要软件具有root权限。在我的桌面上,这是没有问题的,因为我可以运行程序sudo
,这很好。在我的嵌入式设备上,我无法做到这一点,所以我期望的是有一些linux系统函数可以让代码不以root身份运行,但是可以拥有超级用户权限来访问串口。我认识到,从安全角度来看,这可能不是一个好主意,但由于它在嵌入式设备上,我别无选择。是否有系统函数允许我的应用程序拥有root权限?
答
您是否考虑过更改串行端口设备节点的权限,以便您的应用程序可以访问它?
E.g.允许每个应用程序访问/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权限只访问一个设备节点是不是正确的方法...
+0
这似乎是一个更明智的方法。感谢您的回答。 – mathematician1975 2012-07-21 07:05:00
你可以学习更多关于setuid可执行文件的信息... – 2012-07-21 07:00:34