Pregunta

Estoy construyendo una aplicación Cocoa que modifica un archivo en el sistema operativo del usuario que requiere el permiso del administrador. Tengo una prueba de concepto de trabajo que utiliza authopen pero no entrega la experiencia UX Tengo la esperanza de lograr. Cada vez que el archivo se modifica se pide al usuario que introduzca su contraseña. ¿Hay una manera de tener permisos concedidos a la solicitud de la duración de su vida?

Objetivo: Aplicación pregunta al usuario la contraseña una vez jamás , la aplicación va adelante no lo hace preguntar por el password.

Siguiente Best: Aplicación pregunta al usuario la contraseña una vez al iniciar la aplicación , la aplicación va adelante no solicita la contraseña hasta el reinicio de aplicaciones.

Soy consciente de Autorización de Servicios y la posibilidad de crear un demonio que trata específicamente de la modificación de archivos privilegiados, lo siento curiosidad es si alguno de mis objetivos enumerados son incluso sea posible antes de sumergirse demasiado profundo en otro sistema.

podrá apreciar todas las sugerencias, críticas o enlaces útiles.

Cheers, Dustin

¿Fue útil?

Solución

Sí, el uso de los servicios de autorización es el camino a seguir. Se obtiene una AuthorizationRef en su aplicación a través de AuthorizationCopyRights () (que muestra la interfaz de usuario si es necesario), y pasar esto a su ayudante (empaquetando para arriba en una forma externa) que verifica que de hecho se hizo la derecha necesaria antes de realizar la tarea privilegiada . Servicios de autorización es capaz de registrar los derechos en la base de datos /etc/authorization, así que si usted elige una costumbre derecha se puede elegir la configuración predeterminada para que se le permite adquirir, qué tiempo de espera u otras condiciones existen y así sucesivamente.

Para desplegar su herramienta de ayuda privilegiada, se debe utilizar el marco de Gestión de Servicio, en particular, SMJobBless() que verifica que las identidades de firma de código en su partido cliente y ayudante antes de implementar el ayudante como un trabajo launchd. A continuación, esta persona puede ser iniciado en la demanda por la aplicación principal.

No dude en preguntar si desea aclaraciones sobre cualquier paso en la respuesta, sin embargo, ya he escrito acerca de estos dos aspectos de la separación de privilegios en mi libro Profesional Cacao aplicación de seguridad para sentir la libertad de comprar una copia o dos; -).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top