问题标签 [home-assistant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
131 浏览

python - 为什么 Automator 应用程序在作为 LaunchDaemon 运行时会出现权限错误?

我在(Big Sur)Mac Mini上作为 LaunchDaemon 运行Home Assistant Core(Python 服务器)。OSX 11.6我正在尝试为其构建一个插件,以直接访问连接到机器的摄像头。这需要 OSX 相机权限。

不幸的是,没有办法将任意二进制文件(例如来自服务器的 virtualenv 的 python)添加到相机权限;没有+其他权限的图标。当我从终端运行我的代码时,我会收到相机提示,它将Terminal.app(或 iTerm2.app 或 sshd-keygen-wrapper)添加到相机权限,并且一切正常。但由于这些都不是launchd根进程,因此在 Home Assistant 守护进程下运行时会失败。

我发现了这个问题,其接受的答案建议将 Automator 应用程序包装在二进制文件周围:

在 Mac OSX 中运行 python 脚本启动权限问题

我创建了应用程序,当我使用/usr/bin/open -a从终端运行它时,我得到了相机权限提示,并且.app完全按照需要添加到相机权限列表中。但是,当我修改 LaunchDaemon.plist以运行(通过ProgramArguments)时/usr/bin/open -a /opt/homeassistant/bin/hass.app,我收到此错误:

我验证了hass.app它里面的所有东西都归 LaunchDaemon 的UserNameand拥有GroupNamehomeassistant:homeassistant并且它Contents/MacOS/Automator Application Stub+x. 我尝试为应用程序提供全盘访问权限。我在 system.log 中看不到任何有用的东西;只是守护进程正在崩溃循环。

我发现了有关类似权限问题的问题,其答案建议重新签署应用程序、删除隔离 xattrs 等,但这不是这里的问题,因为它从终端运行得很好。

是什么导致了此权限错误,我该如何解决?