首页 > 解决方案 > macOS 请求网络读写权限

问题描述

我正在为更大的系统编写 Go 中的服务/模块,但我在 macOS 上遇到了权限问题。我希望这里的任何人都有这方面的经验。

该模块在 macOS 中使用网络接口(读+写),因此需要管理员/root 权限。该模块也是一个进程的形式,它将通过stdio与父进程通信。由于它需要 root 权限,我尝试将其包装在 AppleScript:do shell script [...] with administrator privileges中,但 osascripts 不会实时返回输出,而是在进程退出时返回 stdio 输出。我需要实时输出stdio,每次启动模块都要写密码很烦人。

所以这给我留下了如何在 Go 中请求网络控制权限的问题。就像您在某些程序上看到的弹出窗口“想要使用您的麦克风”,仅具有网络权限。这可能吗?

如果没有,我该如何解决 macOS 中实时模块需要 root 权限的问题?

标签: macosgonetworkingpermissionssudo

解决方案


我找到了一个可行的解决方案;使用 sudo -S 启动脚本,并通过我自己的 GUI 服务向用户询问 root 密码。只要root密码没有存储在任何地方,它就应该是安全的。


推荐阅读