【问题标题】:Which user should the embedded application run as?嵌入式应用程序应该以哪个用户身份运行?
【发布时间】:2009-09-17 13:32:17
【问题描述】:

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

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

我们应该使用哪个用户?

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

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

【问题讨论】:

    标签: linux permissions embedded


    【解决方案1】:

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

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

    【讨论】:

    • 请注意,现代 VxWorks 版本确实比以前的版本具有更多的控制和隔离功能……但是,是的,对于大多数深度嵌入式设备,没有用户的概念。由于只有一个逻辑用户、环境或物理所有者。
    【解决方案2】:

    我认为问题是:如果出现问题会发生什么?我认为产品在任何情况下都会崩溃、挂起或行为不端? root 用户与普通用户的概念仅适用于非 root 用户可以防止的情况……如果您拥有的只是一个固定的 UI,似乎并非如此。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        这假设您正在运行 GNOME。

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

        2) 广泛使用 gksu。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-11-10
            • 1970-01-01
            • 2013-06-18
            • 2018-07-22
            • 1970-01-01
            • 1970-01-01
            • 2011-04-20
            相关资源
            最近更新 更多