【问题标题】:How to give root access to linux application如何授予对Linux应用程序的root访问权限
【发布时间】:2018-02-06 01:01:44
【问题描述】:

我正在使用 Python3 和 Qt5 制作一个 Linux 应用程序。当用户安装此应用程序时,它会在 /usr/share 文件夹中创建一些文件。要创建文件,应用程序需要具有 root 访问权限。

我计划让应用程序向用户显示一个提示框,用户将输入 root 密码以授予应用程序的 root 访问权限。但我不知道如何使用该密码授予对应用程序的 root 访问权限?

【问题讨论】:

  • 您通常要求操作系统提供处理提升。一旦提升,您只需复制文件并修改服务。您永远不会处理用户的密码。
  • 应该以root身份运行安装,而不是程序本身。只需让用户执行sudo install,否则会失败并显示有用的错误消息。

标签: linux installation pyqt5 elevated-privileges linux-development


【解决方案1】:

这是一个痛苦的世界。以普通用户身份运行的应用程序当然有可能以特权用户身份执行某些操作,但我总觉得有必要这样做表明没有正确考虑安装和维护。

要提升权限,并假设“sudo”不合适(在这种情况下可能不合适),您要么需要使用操作系统工具来完成这项工作(提示输入凭据,然后运行某些东西),或者为您的程序实现一个助手,该程序在其可执行文件上具有 suid 属性。

我希望所有的 Linux 系统都可以访问“su”,但是标准的 su 没有图形界面,这对于 GUI 程序来说是一个拖累。您可以在应用程序中收集用户凭据,然后将它们传递给 su(这很繁琐),或者您可以使用各种图形 su 类型实用程序之一,例如 gksu。当然,只有当这些实用程序在您的平台上可用时才有效。

如果你为你的程序提供一个 suid 部分来处理需要提升权限的工作,你需要非常小心安全性——你如何收集凭据,你如何验证入侵者不能做他们不应该做的事情等等。

坦率地说,这是一罐蠕虫。我认为为您的应用程序提供必须以 root 身份运行的安装或维护模块几乎总是更好。这样,平台就可以完成所有艰苦的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2019-06-11
    相关资源
    最近更新 更多