¿Cómo concedo acceso de root a los archivos de usuario en Mojave?

3

Actualicé mi laptop a Mojave. Durante años, mi estrategia de copia de seguridad ha incluido el uso de rsync (MacPorts rsync 3.1.3) para copiar archivos a un servidor de archivos. Esto dejó de funcionar correctamente, ahora muestra algunos errores que indican problemas de permisos con opendir y get_xattr_data , específicamente con ciertas carpetas ~/Library .

Uso launchd para ejecutar rsync dentro de un script ubicado en /usr/local/bin .

Como parte de mi solución de problemas, ingresé a Terminal y su 'd a la raíz. Luego, cd 'd a ~/Library de mi usuario y acceso probado en algunas de las carpetas. El sistema reportó permission denied .

A través de Seguridad & Privacidad, le di rsync Full Disk Access, pero eso no resolvió el problema.

Supongo que este es un problema derivado de la configuración de seguridad o privacidad de Mojave, ya que nunca he visto a root sin permiso para archivos. Para poder reanudar mis procesos de respaldo, necesito root / launchctl para poder acceder a los archivos.

¿Qué ha cambiado en Mojave que limita el acceso de root ? ¿Cómo mitigo esta limitación en relación con rsync ?

El posible duplicado parece confirmar la necesidad de ajustar la configuración en Seguridad y amp; La privacidad, pero hasta ahora agregar Terminal y rsync a la lista de aplicaciones permitidas no permite que la copia de seguridad tenga éxito. Estoy trabajando para agregar la secuencia de comandos que utilizo para ejecutar la copia de seguridad, y ajustaré mi pregunta cuando haga la prueba.

    
pregunta tim.rohrer 09.10.2018 - 04:10

2 respuestas

3

Como se documenta en esta publicación entre otros lugares, MacOS Mojave implementa protocolos de seguridad adicionales que incluso afectan a root's de acceso a los datos del usuario.

La solución en la pregunta vinculada proporciona el método básico que utilicé para resolver mi problema.

Para los scripts personalizados que se ejecutarán a través de launchd , el administrador de la computadora en la que se ejecutará el script debe agregar ese script a Security & Privacy para otorgar a esa "aplicación" permiso para acceder a los datos del usuario.

No fue necesario agregar launchd o rsync (en mi caso) a Security & Privacy .

No he investigado si hay una manera de hacerlo a través de Terminal, que parece que sería necesario para aquellos que administran una gran cantidad de clientes.

========

Actualización: También aprendí que si agrega un script y luego realiza cambios en ese script, debe eliminarlo de Security & Privacy - > Full Disk Access y luego agregarlo nuevamente. Tal vez macOS crea un hash que se comprueba?

    
respondido por el tim.rohrer 15.10.2018 - 17:51
1

No es exactamente una respuesta a tu problema, pero es muy similar / relacionado ...

Al escribir un script de shell ejecutado por cron , por ejemplo. utilizando rsync en un script para hacer una copia de seguridad de sus archivos en otro servidor.

Observará que agregar "Terminal.app" a "Acceso completo al disco" no funciona, porque cron no usa "Terminal.app".

Puede otorgar acceso de "Acceso total al disco" al programa rsync , y eso soluciona algunos de los problemas de permisos, pero esto no es suficiente si necesita acceder a:

~ / Imágenes / Biblioteca de fotos. ~ / Library / Application Support / AddressBook

En su lugar, debe agregar cron a "Preferencias del sistema > Seguridad & Privacidad > Acceso total al disco".

Hice esto ejecutando open /usr/bin/ , que abrió una ventana del Finder que me permitió arrastrar / soltar fácilmente el programa cron en la lista de "Acceso completo al disco".

    
respondido por el Craig Francis 19.12.2018 - 13:43

Lea otras preguntas en las etiquetas