Configure la preferencia de la aplicación OS X para que deje de solicitar la contraseña de administrador

Configure la preferencia de la aplicación OS X para que deje de solicitar la contraseña de administrador

Estoy intentando escribir un Applescript que envíe algunas acciones a una aplicación (específicamente a un techo acuático). El problema es que la aplicación me pide periódicamente la contraseña de administrador cuando abro el panel de configuración que me interesa. Funciona con un retardo de tiempo, por lo que si ya ingresé la contraseña en los x minutos anteriores, no me aparece. Como no puedo confiar en que me pregunten, no puedo considerar hacer una pausa e ingresar la contraseña como parte del script.

¿Hay alguna manera de decirle a la aplicación/sistema operativo que quiero permanecer conectado a la aplicación con privilegios de administrador y que no debería preguntarme? Quiero agotar esta posibilidad antes de intentar verificar su existencia, etc. en el código.

Respuesta1

Hasta donde yo sé, el tiempo de espera para la autorización en OS X (si se hace correctamente) se establece en elBase de datos de políticasubicado en etc/authorization, generalmente mediante programación. Parece un archivo plist y si un elemento no tiene una clave de "tiempo de espera", entonces no tiene tiempo de espera.

Sé que la preferencia generalmente se establece en el código utilizando las API de Apple (como se muestra en AppleGuía de programación de servicios de autorizacióny elfunciónreferencia).

Este es un archivo protegido. Utilice algo como sudo pico /private/etc/authorizationpara editarlo.

La entrada en este archivo tendrá un título que utilizará una especie de descriptor 'com.company.application.right' o algo así (por ejemplo, com.apple.itunes.copy, com.stackexchange.superuser.deleteuser), que es específico de cada aplicación, así que búsquela. (Creo que está en orden alfabético para facilitar las cosas).

ingrese la descripción de la imagen aquí

Si no existe tal entrada, entonces la aplicación probablemente obtenga la autorización de otra manera que no conozco. Intenté agregar un tiempo de espera a una aplicación que escribí y funcionó. Luego lo eliminé nuevamente y el tiempo de espera desapareció. Supongo que debería funcionar en tu caso.

Mencionas un panel de configuración; si eso involucra Preferencias del Sistema, entonces tampoco sé cómo funciona. No hay forma de hacerlo a través de AppleScript.

Editar: si no existe tal entrada

OTRA forma en que una aplicación puede autorizar es mediante el método ahora obsoleto e inseguro AuthorizationExecuteWithPrivileges. Supongo que si una aplicación no tiene su propia entrada en la base de datos de políticas, usa AuthorizationExecuteWithPrivileges. Puede ser que la aplicación con la que estás intentando trabajar utilice esto.

Hay una entrada en la base de datos de políticas para este método en particular llamada system.privilege.admin, pero tenga en cuenta que modificarla y eliminar el tiempo de espera probablemente cambiará el tiempo de espera para todas las aplicaciones que usan AuthorizationExecuteWithPrivileges, no solo la que está intentando cambiar. Quizás valga la pena.

ingrese la descripción de la imagen aquí

información relacionada