9 votes

Comment appliquer les règles de sandbox pour une application particulière ?

J'ai écrit un fichier de spécification de bac à sable (inspiré par des fichiers de /usr/share/sandbox et des manuels comme ce ) et maintenant je peux lancer une application en sandbox avec sandbox-exec $path_to_rules /Applications/$appname.app/Content/... . Bien.

Existe-t-il un moyen de faire respecter les règles lorsque l'application est lancée de manière habituelle (Finder "Ouvrir avec...", etc.) ?

J'ai pensé à remplacer le binaire à l'intérieur du .app par un wrapper script mais il sera écrasé après la mise à jour de l'application et je devrai le restaurer à chaque fois.

5voto

grg Points 181593

Oui, vous pouvez modifier le binaire, ou même changer le fichier Info.plist, mais comme pour la modification du binaire, vous devrez le refaire à chaque mise à jour de l'application. Il n'y a aucun moyen de le faire sans modifier l'application de manière à ce qu'elle ne soit pas écrasée lors de sa mise à jour.

Vous pouvez effectuer vos modifications automatiquement avec un agent de lancement.
Enregistrez ce qui suit dans ~/Library/LaunchAgents comme com.yourname.youragent.plist puis exécutez launchctl load ~/Library/LaunchAgents/com.yourname.youragent.plist .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.yourname.youragent</string>
        <key>OnDemand</key>
        <true/>
        <key>Program</key>
        <string>cp</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Users/grgarside/test/MyApp</string>
            <string>/Applications/MyApp.app/Contents/MacOS/</string>
        </array>
        <key>WatchPaths</key>
        <array>
            <string>/Applications/MyApp.app/Contents/MacOS/MyApp</string>
        </array>
    </dict>
</plist>

Le script ci-dessus surveillera les WatchPaths pour toute modification (dans ce cas, il surveille le binaire d'une application) et exécutera cp pour copier votre binaire dans l'application dans /Applications.

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