嵌入式应用程序应该作为哪个用户运行?

时间:2009-09-17 13:32:17

标签: linux permissions embedded

我们有一个嵌入式Linux产品,其中包含一个应用程序,允许用户通过菜单系统更改不同的设置。这些设置包括IP地址/ DHCP和时间。

我们现在以root身份运行此应用程序,但这感觉不对,让用户直接与以root身份运行的进程进行交互。

我们应该使用哪个用户?

如果不是root,我们如何完成出现的权限问题?

编辑: 该产品没有经典Gnome / KDE方式的图形用户环境。所提到的菜单系统是在产品本身的LCD面板上实现的。

5 个答案:

答案 0 :(得分:3)

如果对输入应用严格控制,则在Linux上以root身份运行嵌入式应用程序没有任何问题。

无论如何,当底层操作系统类似于VxWorks时,应用程序也会以最大权限运行。

答案 1 :(得分:2)

我认为问题是:如果出现问题会怎么样?我认为产品在任何情况下都会崩溃,挂起或行为异常? root vs regular用户的概念实际上只适用于有些东西不能被root防止...如果你拥有的只是一个固定的用户界面似乎并非如此。

答案 2 :(得分:1)

如果应用程序是系统的主要部分,那么以root身份运行它是有意义的。 但是,即使有一些额外的工作,也值得将您的应用程序与GUI分离,因此您的GUI可以作为普通用户运行。 这也可以帮助您自动化测试。

答案 3 :(得分:0)

这假设你正在运行GNOME。

1)执行“用户和组”程序的功能。它允许您查看当前设置,但需要您解锁高级设置,例如管理其他用户。

2)广泛使用gksu。

答案 4 :(得分:0)

我会将代码分成几部分。为您的界面代码创建用户。你可以把它命名为“界面”。然后让它通过守护进程或sudo调用root来实际执行需要root的更改。限制访问权限,以便只能运行已批准的命令。