3 votos

¿Cómo dar un permiso de script CGI para acceder el calendario?

Cuando ejecuto el script desde la línea de comandos puedo utilizar - estoy realmente le pedirá que utilice el Sistema de Preferencias para agregar ssh-keygen-wrapper autorizado para acceder a la agenda.

Pero cuando ejecuto el script como un programa CGI que no está autorizado a acceder al Calendario - se está ejecutando como nobody y falla - y no sé cómo darle la CGI-invoca el script requiere permiso.

Una pregunta relacionada es si siquiera me debe como dar nobody el acceso a Calendario ... pero eso es un tema aparte.

[INFORMACIÓN]
macOS Alta Sierra Python script CGI utilizando un AppleScript para leer los eventos del Calendario

2voto

Milan Novota Puntos 10892

El usuario nobody no es interactivo y no tienen calendarios de todos modos. Usted tendrá que tener algún componente (tal vez otra aplicación personalizada/proceso) que se ejecutan como para entregar la información del calendario.

Usted realmente tiene dos opciones, una de ellas es muy malo.

En primer lugar, usted podría tener su CGI scripts se ejecutan como usted. Esto no es difícil, pero muy peligroso y no se recomienda.

En segundo lugar, usted puede construir lo que es esencialmente un calendario de proxy. Este podría ser otro programa (como usted) que siempre cinco minutos lee los datos del calendario y lo escribe en un archivo que nadie, la cuenta, se puede leer. Ya parecen estar familiarizado y trabajando muy bien con los calendarios así que esto no debería ser un problema, es sólo otro script que programar con cron.

Otra cosa, aunque realmente no estoy seguro de si va a trabajar para nadie, es que puede ejecutar sudo su nobody y, a continuación, ejecutarlo. Desde OSX sabe que el PTTY está conectado a tu sesión de usuario se mostrará el símbolo del sistema para que acepte. Aunque todavía no será capaz de acceder a sus usuarios calendarios, este truco es útil si usted tiene que utilizar este tipo de permisos como root quien también no una sesión gráfica.

1voto

Adam Driscoll Puntos 5117

Por supuesto @Sirenas señala la evidente falla en mi enfoque. Yo había usado el AppleScript como una manera fácil de acceder a los Calendarios disponibles en la línea de comandos el usuario estaba conectado como pero, por supuesto, no tenía a nadie.

Agradezco profundamente considerado @de la Sirena de respuesta y de acuerdo con él de que mi enfoque era básicamente irracional y una solución era demasiado peligroso o inadecuado a que consideren más.

Espero que esto constituye una respuesta útil a cualquier persona que también tomó a mal esto de inflexión ya que parece obvio que la búsqueda de un mejor informado de la tachuela usando la información disponible en librerías de Python para crear una secuencia de comandos CGI donde yo (y nadie) puede proporcionar explícitamente el Calendario con las credenciales del cliente, independientemente de que el usuario o el equipo en que se ejecuta la secuencia de comandos.

He utilizado caldav como una prueba de concepto pero se encontró con algunos problemas en hacerlo, así que ahora estoy mirando de Apple CalDAVClientLibrary que parece ser un poco más amplio.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X