9 votos

MacOS Catalina provoca el error "find: .: Operación no permitida" errores

Tengo un flujo de trabajo de automatización que utilizo como Acción Rápida. Toma un elemento del Finder y llama a un shell script con él. Parte del shell script ejecuta un comando find en el directorio del elemento del Finder. Antes de Catalina, esto funcionaba. Ahora obtengo

find: <path to the directory>: Operation not permitted

Esto sólo ocurre cuando lo ejecuto como Acción Rápida de Servicio. Si llamo al script en Terminal, funciona bien, al igual que el comando find en Terminal.

# Directory to delete files from
REAL_FILE=$(/usr/local/bin/realpath "$1")
DIR=$(dirname "$REAL_FILE")

find "$DIR" -type f -depth 1 -print0 | while read -d $'\0' FILE
do
    if [[ "$FILE" < "$REAL_FILE" ]] ; then
        mv "$FILE" ~/.Trash/
    fi
done

0 votos

¿Qué shell ha seleccionado en el bloque "Ejecutar Shell script"? Intenta darle a ese shell acceso total al disco (Preferencias del Sistema > Seguridad y Privacidad > Privacidad > Acceso total al disco)

2voto

Andrew Dunning Puntos 203

Tienes que conceder al Finder acceso total al disco:

  1. Abrir las preferencias de seguridad y privacidad
  2. Vaya a la opción de Acceso total al disco.
  3. Haz clic en el botón más.
  4. Localice el Finder en /System/Library/CoreServices/ (o simplemente escriba "Finder" en la búsqueda).

Compara Conceder "acceso total al disco" a los flujos de trabajo ejecutados a través del menú de servicios .

2voto

brianc Puntos 21

Tuve un problema algo relacionado. Creé un script periódico que se ejecutaba bajo /etc/daily.local . Esto fue en MacOS Catalina. Tenía la siguiente línea:

find "/Users/brianc/Downloads" -Btime +3d -name 'GBH4SN2*.rdp' -type f -print

Y cuando el script se ejecutaba, veía lo siguiente:

find: /Users/brianc/Downloads: Operation not permitted

Así que concedí el acceso total al disco ( Preferencias del sistema > Seguridad y privacidad > Privacidad > Acceso total al disco ) a find . No hay diferencia. Concedido por la FDA a bash . No hay diferencia. Concedido por la FDA a sh . No hay diferencia. Finalmente, revisando todos los diferentes scripts, encontré que los scripts periódicos se ejecutan bajo /usr/libexec/periodic-wrapper que se ejecuta desde /System/Library/LaunchDaemons/com.apple.periodic-daily.plist . Así que, concedí a la FDA a periodic-wrapper . Problema resuelto.

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