У меня проблема с запуском моего LaunchAgent от имени обычного пользователя (не root). Все, что я прочитал, подразумевает, что это должно быть поведение по умолчанию. Ожидается, что если вы поместите plist в / Library / LaunchAgents, то при загрузке он загружается для пользователя, как пользователя, при входе пользователя в систему.
Однако я обнаружил, что если вы запускаете launchctl с помощью sudo ('sudo launchctl load /Library/LaunchAgents/myagent.plist'), тогда процесс запускается в сеансе пользователя с правами root . Это означает, что «ps u -ax» показывает процесс, выполняющийся как «root», а также файлы, созданные процессом, принадлежат root: staff
Я попытался погуглить по этому поводу и нашел тонну сообщений, как будто кто-то хочет, чтобы у их агента был root-доступ (что IMO «неправильно»), и они делают все эти сообщения на форуме о том « как я могу дать ему root », и все отвечая, чтобы объяснить: « он не получает root, это пользовательский агент » ... Это то, что я ожидаю, однако у меня возникла противоположная проблема, я не хочу, чтобы у этого агента был root-доступ, он не должен иметь это, все же это имеет это.
Если ответ « вы просто не можете запустить launchctl с помощью sudo или это происходит », я не смог найти это нигде. И если это так, то как мне выполнить запуск / выгрузку launchctl на Агенте от демона, который должен иметь root-доступ, что мне нужно сделать, чтобы продукт сам обновился?
РЕДАКТИРОВАТЬ: Вот пример часто связанного сообщения, из-за которого кажется, что это не должно быть проблемой, из-за чего агенту кажется невозможным работать от имени пользователя root, даже если вы этого хотите ... https: // superuser .com / а / 36173/603140
почему бы не поместить его в ~ / Library / LaunchAgents?