因此,我明白在Linux环境中以根用户身份运行GUI应用程序是一个糟糕的想法,流行的智慧似乎是,最好通过单独的进程来运行这样的服务:一个GUI界面进程和一个后台、具有根特权的守护进程来完成实际工作。
我正在创建一个程序,目标是不喜欢技术的桌面用户。我不想要求他们打开命令行并运行命令来启动我的程序。他们应该能够点击菜单项(或一个.desktop文件),只需让这个程序工作。因此,GUI程序需要启动根进程,反之亦然。当然,他们需要输入管理密码,但我不知道如何以一种安全的、分发无关的方式允许这一点。
这是一个备份程序,因此需要对目标驱动器进行分区以复制源驱动器上的分区,这需要根权限。在这个步骤之后,它只需要挂载和卸载分区,以便将文件从源驱动器复制到目标。该程序将通过包管理器安装,可能至少具有初始安装的管理权限。
如何安全地允许GUI程序运行根特权守护进程?
注意:如果有关系,我使用的语言是Python 3。
发布于 2018-08-10 17:53:52
简单-你完全把程序分成两部分。
首先是服务器/服务及其守护进程。这应该是可安装的独立的,并且集成到主机使用的任何进程管理器- systemd、upstart、initd等等。
然后你就有了你的GUI程序。将其设置为通过本地计算机上的网络(使用环回)或运行守护进程的远程主机进行连接。
有关这方面的示例,请查看mysql服务器和mysql-工作台。两个完全独立的应用程序,一个GUI和不需要根,一个服务和根可能需要。
发布于 2018-08-11 12:37:21
如果需要启动根特权作业,可以使用"sudo“。它可以配置为“运行GUI进程的特定用户It可以使用这些参数运行特定的根命令”。
https://unix.stackexchange.com/questions/460907
复制相似问题