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



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

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

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

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

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

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

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

最新更新