Apple a encore renforcé les mesures de sécurité par défaut de macOS Catalina. La dernière version de son système d’exploitation pour Mac empêche les apps d’enregistrer l’écran ou votre utilisation du clavier à votre insu, mais elle bloque aussi plus fermement l’accès à de nombreux dossiers, y compris votre bureau et les documents. Ces sécurités ne s’appliquent pas qu’aux apps, elles concernent aussi les outils UNIX, ceux que l’on exploite en passant par un terminal.
C’est ce qu’a découvert un développeur en notant que ses cron ne fonctionnaient plus après la mise à jour vers Catalina. Pour faire (très) simple, cron est un système d’automatisation qui permet d’activer des scripts ou des commandes de terminal à intervalles réguliers. C’est un outil extrêmement courant, surtout utilisé sur les serveurs, mais qui peut également servir sur macOS.
Avec Catalina, cron est soumis aux mêmes règles que les autres apps. Le système bloquera ainsi l’exécution d’un script Shell qui touche aux fichiers dans l’un des dossiers protégés, y compris vos documents. L’ajout de sudo
, qui permet sur les systèmes UNIX d’obtenir les droits administrateur, n’y fera rien, c’est un blocage plus bas niveau qu’Apple impose. Fort heureusement, il existe des solutions pour contourner ces protections, même si le constructeur ne les met pas du tout en avant.
La plus radicale est de désactiver totalement SIP, auquel cas les commandes UNIX retrouvent toute leur liberté1. Faites attention toutefois, votre Mac sera alors plus largement ouvert, contre des logiciels malveillants et aussi contre les bourdes de certaines apps. C’est la mésaventure qui est arrivée récemment à certains utilisateurs de Chrome sur des Mac sans SIP, un bug dans le programme de mise à jour du navigateur effaçait des fichiers essentiels au bon fonctionnement de macOS.
Une solution plus raisonnable consiste à autoriser cron et les autres exécutables bloqués par Catalina. Pour ce faire, c’est exactement comme pour les apps : ouvrez les Préférences Système, puis le panneau « Sécurité et confidentialité ». Dans l’onglet « Confidentialité », choisissez « Accès complet au disque » sur le côté et ajoutez les exécutables en fonction de vos besoins. Dans le cas de cron, il faut ouvrir le dossier /usr/sbin/
pour l’ajouter à cette interface et débloquer son fonctionnement.
On comprend pourquoi Apple procède ainsi, notamment avec cron qui peut être un excellent moyen, pour un malware, de se réinstaller dans votre dos et à votre insu si vous le supprimez. Néanmoins, c’est aussi un outil utilisé par de nombreux utilisateurs, des développeurs en particulier. L’absence d’explications, ou ne serait-ce que d’un message d’erreur, est un problème, surtout pour un processus qui est censé tourner en arrière-plan et sans retour visible.
Pour terminer, rappelons que macOS dispose de son propre système équivalent à cron et qui n’est pas bloqué par macOS Catalina : launchd. La configuration est un petit peu plus complexe, mais si vous avez besoin d’exécuter régulièrement une commande sur votre Mac, c’est probablement la meilleure option.
-
Vous trouverez les informations pour désactiver ou réactiver SIP dans cet article. ↩