Можно ли запустить агент запуска от имени пользователя с разрешениями sudo?

485
Chris Vasselli

У меня есть исполняемый файл, который должен запускаться каждый раз, когда пользователь входит в систему. Он должен запускаться в контексте этого пользователя, но с правами root, как если бы пользователь запускал его sudo.

Я просмотрел документацию Apple, а также веб-сайт launchd.info, чтобы найти способ сделать это, но не смог ничего найти.

Если я создаю Launch Agent (in ~/Library/LaunchAgentsили /Library/LaunchAgents) или Launch Daemon с UserNameнабором свойств, он запускается от имени пользователя (по желанию), но я не могу делать ничего, что требует повышенных привилегий.

Если я создаю Launch Daemon (in /Library/LaunchDaemons), он запускается как root (с желаемыми привилегиями), но без какого-либо пользовательского контекста. Если я использую su <username> -c "<command>"или sudo -u <username> <command>из Launch Daemon, я могу запустить команду от имени пользователя, но она запускается без привилегий sudo.

Есть ли способ запустить агент запуска с разрешениями sudo?

2
Несколько советов: этот генератор .plist предлагает вам указать имя пользователя. Вы можете попробоватьUserName корень`(У меня нет). В качестве альтернативы вы можете запускать как `root` из скрипта, как это предлагается различными способами здесь: https://askubuntu.com/questions/425754/how-do-i-run-sudo-command-inside-a-script anon01 6 лет назад 0

0 ответов на вопрос