我们有一个嵌入式Linux产品,其中包含一个应用程序,允许用户通过菜单系统更改不同的设置。这些设置包括IP地址/ DHCP和时间。
我们现在以root身份运行此应用程序,但这感觉不对,让用户直接与以root身份运行的进程进行交互。
我们应该使用哪个用户?
如果不是root,我们如何完成出现的权限问题?
编辑: 该产品没有经典Gnome / KDE方式的图形用户环境。所提到的菜单系统是在产品本身的LCD面板上实现的。
答案 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的更改。限制访问权限,以便只能运行已批准的命令。