Dans votre cas, vous devez ajouter cron
en tant qu'application "parente" des applications/exécutions Sécurité et confidentialité > Confidentialité > Accès intégral au disque de l'utilisateur.
Selon l'endroit où lire le script et où écrire le fichier journal, vous devez ajouter cron
aux applications d'accès complet au disque. Presque tous les dossiers par défaut dans la maison de l'utilisateur sont protégés (Documents/Downloads/Desktop - je n'ai pas vérifié Pictures/Movies/Music mais je pense qu'ils sont protégés aussi et évidemment les mauvais dossiers pour ajouter des shell scripts ou des fichiers journaux) par la politique système de Catalina.
Si le script et le journal résident dans des dossiers créés par l'utilisateur et donc non protégés (par exemple, le script dans ~/bin et le fichier journal dans ~/log), cela fonctionne sans ajouter cron au groupe Accès complet au disque.
Pour ajouter l'exception :
- cliquez sur le + bouton
- touchez G
- entrez
/usr/sbin
- double-cliquez sur le
cron
fichier.
Vous pouvez vérifier ce type d'erreurs en ouvrant Console.app et en recherchant l'exécution cisaillée dans le script (ici bash
) :
error 15:19:00.369105+0100 kernel Sandbox: bash(4556) System Policy: deny(1) file-write-data /Users/user/Desktop/test/cronjob2.log
error 15:19:00.379093+0100 kernel Sandbox: bash(4555) System Policy: deny(1) file-read-data /Users/user/Desktop/cronjob.sh
Dans les exemples ci-dessus cron
n'a pas été ajouté au groupe Accès complet au disque.
cronjob2 a été exécuté depuis un dossier non protégé ~/bin mais tente d'écrire le fichier journal dans le dossier protégé ~/Desktop/test/. Donc pas d'erreur de lecture mais une erreur d'écriture.
cronjob a été exécuté depuis un dossier protégé ~/Desktop et tente d'écrire le fichier journal dans le dossier protégé ~/Desktop/. Donc une erreur de lecture.
Il est intéressant de noter que les deux fichiers journaux sont créés - le premier (cronjob2.log) est cependant vide.