9 votes

MacOS Catalina provoque des erreurs "find : .. : Opération non autorisée".

J'ai un flux de travail automatisé que j'utilise comme une action rapide. Il prend un élément du Finder et appelle un shell script avec celui-ci. Une partie du shell script exécute une commande find sur le répertoire de l'élément Finder. Avant Catalina, cela fonctionnait. Maintenant, j'obtiens

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

Cela ne se produit que lorsque je l'exécute en tant qu'action rapide de service. Si j'appelle le script dans le Terminal, il fonctionne bien, tout comme la commande find dans le 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

3voto

brianc Points 21

J'ai eu un problème un peu similaire. J'ai créé un script périodique qui tournait sous /etc/daily.local . C'était sur MacOS Catalina. Il avait la ligne suivante :

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

Et quand le script s'exécute, je vois ce qui suit :

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

Donc, j'ai accordé un accès complet au disque ( Préférences du système > Sécurité et confidentialité > Vie privée > Accès au disque complet ) à find . Aucune différence. Accordé à la FDA pour bash . Aucune différence. Accordé à la FDA pour sh . Aucune différence. Finalement, en passant en revue les différents scripts, j'ai trouvé que les scripts périodiques sont exécutés sous /usr/libexec/periodic-wrapper qui est exécuté à partir de /System/Library/LaunchDaemons/com.apple.periodic-daily.plist . Donc, j'ai accordé à la FDA periodic-wrapper . Problème résolu.

2voto

Andrew Dunning Points 222

Vous devez accorder au Finder un accès complet au disque :

  1. Préférences ouvertes en matière de sécurité et de confidentialité
  2. Allez à l'option Accès complet au disque.
  3. Cliquez sur le bouton plus.
  4. Localisez le Finder dans /System/Library/CoreServices/ (ou tapez simplement "Finder" dans le champ de recherche).

Comparez Accorder un "accès complet au disque" aux flux de travail exécutés via le menu "Services". .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X