如何给root用户访问linux应用程序

时间:2017-08-28 17:27:09

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

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

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

1 个答案:

答案 0 :(得分:0)

这是一个充满痛苦的世界。作为普通用户运行的应用程序当然可以作为特权用户执行某些操作,但我始终认为需要这样做表明安装和维护尚未通过正确考虑。

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

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

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

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