У меня проблема с запуском моего 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