如何授予 linux 应用程序的根访问权限

How to give root access to linux application

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

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

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

要提升权限,假设 "sudo" 不合适(在这种情况下可能不合适),您将需要使用一个操作系统工具来完成这项工作(提示credentials 然后 运行ning something),或者为你的程序实现一个 helper,它的可执行文件上有 suid 属性。

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

如果您为程序提供 suid 部分来处理需要提升权限的工作,那么您需要格外注意安全性——如何收集凭据,如何验证入侵者是否可以'不做不该做的事等

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