Как защитить агента запуска с графическим интерфейсом пользователя от пользователя, не отключающего его от имени администратора? - PullRequest
0 голосов
/ 09 июля 2009

У меня есть пара демонов launchd, один из которых является истинным демоном (запускается от имени root), а другой - агент графического интерфейса, который работает на основе сеанса GUI (тип сеанса Aqua).

Мне нужно запретить пользователям, не являющимся администраторами, отключать агент уровня пользователя с помощью launchctl или, по крайней мере, выяснить, как перезагрузить агент из демона корневого уровня.

Лучшая статья, которую я нашел до сих пор, это эта , но она не предлагает каких-либо четких решений.

Казалось бы, самый простой способ - периодически извлекать текущего пользователя консоли из корневого демона, а затем запускать launchctl load ... от имени этого пользователя, но я не совсем, если это возможно / как бы я поступил так (если Я просто запускаю load из демона, не выдавая себя за пользователя, он будет загружен под пользователем root, что бесполезно).

Есть идеи?

1 Ответ

0 голосов
/ 07 декабря 2009

вы можете проверить авторизацию в вашем обработчике SIGTERM, см. http://developer.apple.com/mac/library/technotes/tn2002/tn2095.html для примера проверки пользовательской авторизации

...