У меня есть исполняемый файл, который должен запускаться каждый раз, когда пользователь входит в систему. Он должен работать в контексте этого пользователя, но с правами root, как если бы пользователь запускал его с помощью sudo
.
Я просмотрел документацию Apple, а также веб-сайт launchd.info, чтобы найти способ сделать это, но не смог ничего найти.
Если я создаю Launch Agent (в ~/Library/LaunchAgents
или /Library/LaunchAgents
) или Launch Daemon с установленным свойством UserName
, он запускается как пользователь (по желанию), но я не могу сделать ничего, что требует повышенных прав.
Если я создаю Launch Daemon (в /Library/LaunchDaemons
), он запускается как root (с желаемыми привилегиями), но без какого-либо пользовательского контекста. Если я использую su <username> -c "<command>"
или sudo -u <username> <command>
из демона запуска, я могу запустить команду от имени пользователя, но она запускается без привилегий sudo.
Есть ли способ запустить агент запуска с разрешениями sudo?