2011-07-11 13 views
6

¿Alguien puede arrojar algo de luz sobre el soporte actual y recomendar maneras de elevar los privilegios en una herramienta de ayuda? NoForma admitida para elevar los privilegios

Desde mi entendimiento de las siguientes maneras es Apple compatibles manera de hacerlo:

  • setuid
  • AuthorizationExecuteWithPrivileges()

Estoy buscando una manera de ser capaz de ejecutar/usr/sbin/softwareupdate y coloque un launchd en/Library/LaunchDaemons.

Se agradecerá cualquier documentación o código de muestra.

Respuesta

0

Como dices, Apple recomienda evitar los binarios setuid y AuthorizationExecuteWithPrivileges, por razones de seguridad. El enfoque recomendado parece ser ejecutar una herramienta de ayuda privilegiada (bajo demanda) mediante launchd, comunicándose con ese asistente desde su aplicación por IPC a través de un socket de dominio Unix. El helper privilegiado sería ejecutado por launchd con los privilegios necesarios

El BetterAuthorizationSample sample code proporciona un ejemplo de cómo hacerlo.

+0

no, el código de ejemplo SMJobBless proporciona un ejemplo de cómo hacerlo ... la muestra BetterAuthorization utiliza otros métodos (más antiguos) para escalar los privilegios. El código SMJobBless es mucho más claro en mi humilde opinión, y es el camino a seguir. – livingtech

1

El nuevo método de introducción-en-10.6 oficialmente admitido se llama SMJobBless(). Sin embargo, hay muy poca documentación sobre esto; una búsqueda rápida de Google mostró un puñado de publicaciones en el blog.

Cuestiones relacionadas