3 votos

cron carece de permisos para ejecutar un script

Tengo un script (que hace una copia de seguridad, utilizando rclone ) que puedo ejecutar desde el Terminal o Automator después de chmod a+x sin problemas de permisos.

Sin embargo, cuando este script se ejecuta en cron (o launchd ), stderr muestra "/bin/bash: /Users/joshua/script.sh: Operation not permitted."

Estoy más familiarizado con Ubuntu, donde este enfoque funciona bien.

¿Qué tengo que hacer aquí?

Edición: La pregunta anterior sigue siendo pertinente, pero tenga en cuenta que launchd es el sustituto favorito de cron para Mac, mientras que Automator está disponible para la programación a nivel de aplicación.

3voto

Oskar Puntos 1242

Parece que los dos programas adecuados para dar acceso completo son:

cron
terminal.app

Ver rsync en cron en Catalina ya no funciona

0 votos

Gracias, señor. Pero (1) Estoy usando rclone, no rsync. ¿Sucede lo mismo con rclone? (2) ¿No parece por el error que el programa que falla en los errores de autorización es bash y no rclone? (3) ¿Por qué el terminal.app? Se trata de un proceso en segundo plano.

1 votos

Añade cron, eso debería ser todo ya que tu terminal está funcionando. @JoshuaFox

0voto

Joshua Fox Puntos 106

La solución que me ha funcionado es utilizar Automator, no cron, como en este ejemplo .

-2voto

Udhy Puntos 3

Hay dos soluciones que puedes probar. La primera la recomiendo, pero la segunda también puede ayudar, pero no es la solución ideal.

Primera solución: Asumiendo que estás en MacOS superior a 10.12

  1. Elige ' Preferencias del sistema '
  2. Elige " Seguridad y privacidad " panel de control
  3. Ahora seleccione la opción " Privacidad " y, a continuación, en el menú de la izquierda, seleccione " Acceso total al disco "
  4. Haga clic en el icono del candado situado en la esquina inferior izquierda del panel de preferencias y autentifíquese con un nombre de usuario de nivel de administrador
  5. Ahora haga clic en el botón [+] más para añadir una aplicación con acceso total al disco

enter image description here

  1. Vaya a la carpeta /Applications/Utilities/ y elija "Terminal" para conceder a Terminal privilegios de acceso total al disco

enter image description here

  1. Reinicie el Terminal, los mensajes de error "Operación no permitida" desaparecerán

Segunda solución (personalmente no la recomiendo)

  1. Reinicie su Mac en el modo de recuperación reiniciando el ordenador y manteniendo pulsada la tecla Command+R hasta que aparezca el logotipo de Apple en la pantalla.

  2. Haga clic en Servicios públicos > Terminal .

  3. En la ventana del Terminal, escriba:

      csrutil disable
  4. Reinicia tu Mac.

0 votos

Gracias, pero el programa que necesita permisos parece ser cron, no Terminal. De hecho, Terminal ya tenía esos permisos y el script se ejecutaba desde Terminal. He probado tus instrucciones y me da el mismo error desde cron. Además, creo que el permiso necesario es para ejecutar un script, no Full Disk Access. ¿Cómo puedo dar los permisos necesarios aquí?

0 votos

Debe añadir cron a "Preferencias del Sistema > Seguridad y Privacidad > Acceso total al disco". Lo hice ejecutando open /usr/bin/ que abría una ventana del Finder que me permitía arrastrar y soltar fácilmente el archivo cron en la lista "Acceso total al disco".

0 votos

No hay cron en /usr/bin. ls /usr/bin/cron* muestra ` /usr/bin/crontab sólo ¿es ese el que debería obtener permisos?

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