Python 强制GUI应用程序以root用户身份运行

Python 强制GUI应用程序以root用户身份运行,python,macos,root,pyinstaller,Python,Macos,Root,Pyinstaller,我正准备在OS X上部署一个应用程序。这是我第一次在这个平台上编写一个需要root权限才能正常运行的应用程序,所以我需要为每次启动尝试集成该功能 应用程序本身是用Python2.7编写的,然后使用PyInstaller编译成二进制。到目前为止,我已经尝试: 使用sudopyinstaller-w--icon=/path/to/icon/path/to/script.py运行PyInstaller 使用sudo su 我不知道在这一点上还有什么可以尝试的。这是使用符号链接可以实现的吗?当您以后

我正准备在OS X上部署一个应用程序。这是我第一次在这个平台上编写一个需要root权限才能正常运行的应用程序,所以我需要为每次启动尝试集成该功能

应用程序本身是用Python2.7编写的,然后使用PyInstaller编译成二进制。到目前为止,我已经尝试:

  • 使用
    sudopyinstaller-w--icon=/path/to/icon/path/to/script.py运行PyInstaller

  • 使用
    sudo su

我不知道在这一点上还有什么可以尝试的。这是使用符号链接可以实现的吗?

当您以后以普通用户身份启动应用程序时,以root用户身份运行安装程序将无效

请改为尝试
sudopython/path/to/script.py

如果这样做有效,那么将其放入shell脚本并运行该脚本,从现在开始以root用户身份启动应用程序(了解MacOS的人可能会告诉你如何为脚本创建一个漂亮的图标)

警告这样做会使您的系统容易受到攻击。如果你在你自己的Mac上做这件事,那很好。如果您正在开发一个向其他人销售的产品,那么您需要重新审视您的设计,因为它已严重损坏。

当您以后以普通用户身份启动应用程序时,以root用户身份运行安装程序将不起作用

请改为尝试
sudopython/path/to/script.py

如果这样做有效,那么将其放入shell脚本并运行该脚本,从现在开始以root用户身份启动应用程序(了解MacOS的人可能会告诉你如何为脚本创建一个漂亮的图标)

警告这样做会使您的系统容易受到攻击。如果你在你自己的Mac上做这件事,那很好。如果您正在开发一个向其他人销售的产品,那么您需要重新审视您的设计,因为它已严重损坏。

当您以后以普通用户身份启动应用程序时,以root用户身份运行安装程序将不起作用

请改为尝试
sudopython/path/to/script.py

如果这样做有效,那么将其放入shell脚本并运行该脚本,从现在开始以root用户身份启动应用程序(了解MacOS的人可能会告诉你如何为脚本创建一个漂亮的图标)

警告这样做会使您的系统容易受到攻击。如果你在你自己的Mac上做这件事,那很好。如果您正在开发一个向其他人销售的产品,那么您需要重新审视您的设计,因为它已严重损坏。

当您以后以普通用户身份启动应用程序时,以root用户身份运行安装程序将不起作用

请改为尝试
sudopython/path/to/script.py

如果这样做有效,那么将其放入shell脚本并运行该脚本,从现在开始以root用户身份启动应用程序(了解MacOS的人可能会告诉你如何为脚本创建一个漂亮的图标)


警告这样做会使您的系统容易受到攻击。如果你在你自己的Mac上做这件事,那很好。如果你正在开发一个你卖给别人的产品,那么你需要重新设计你的设计,因为它被严重破坏了。

< P>苹果建议没有GUI应用程序运行为root,因为包含在这样的应用程序中的库增加了恶意软件的攻击向量。 相反,建议将代码重构为两部分:Gui和一个单独的助手应用程序,后者具有root权限


有一个示例应用程序。

< P>苹果建议没有GUI应用程序运行为root,因为包含在这样的应用程序中的库增加了恶意软件的攻击向量。 相反,建议将代码重构为两部分:Gui和一个单独的助手应用程序,后者具有root权限


有一个示例应用程序。

< P>苹果建议没有GUI应用程序运行为root,因为包含在这样的应用程序中的库增加了恶意软件的攻击向量。 相反,建议将代码重构为两部分:Gui和一个单独的助手应用程序,后者具有root权限


有一个示例应用程序。

< P>苹果建议没有GUI应用程序运行为root,因为包含在这样的应用程序中的库增加了恶意软件的攻击向量。 相反,建议将代码重构为两部分:Gui和一个单独的助手应用程序,后者具有root权限


有一个示例应用程序。

这很有帮助,但会导致终端窗口打开提示输入根密码。考虑到该应用程序的目标受众,最好是获得请求密码的常规GUI弹出窗口。有办法吗?另一方面,
.py
脚本不在最终产品中。PyInstaller会将其编译成二进制文件。好吧,你会破坏系统的安全性,所以它应该不会让人感到舒服。我现在的猜测是,您并不真正知道自己在做什么,而“以root身份运行”似乎是您遇到的任何问题的“解决方案”。事实并非如此。你的应用程序必须在没有root的情况下运行。如果您遇到错误或有问题,请向我们寻求解决方案。但以root用户身份运行数百万行不安全代码就像邀请世界上的每一个罪犯参加家庭聚会。我的应用程序是围绕一个主要的第三方组件构建的包装器,它需要root用户权限才能运行,其源代码太大,我无法将更改放入其中,只能通过终端请求权限。如果我的评论看起来没有信息,那是因为我通常不是Objective-C开发人员——正如我所提到的,包装器的所有源代码都是Python,使用PyInstaller编译。无论您使用Python还是Objective-C,安全性的工作方式都是一样的。这个第三方组件是什么,为什么