0

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

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

4

1 回答 1

0

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

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

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

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

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

于 2017-08-30T12:51:58.357 回答