Belirli bir uygulama için korumalı alan kuralları nasıl uygulanır?


9

Bir korumalı alan belirtim dosyası yazdım (dosyalardan /usr/share/sandboxve bunun gibi kılavuzlardan esinlenerek ) ve şimdi sanal alandaki bazı uygulamaları başlatabilirim sandbox-exec $path_to_rules /Applications/$appname.app/Content/.... İnce.

Uygulama düzenli olarak başlatıldığında kuralları bulmanın bir yolu var mı (Finder'in "Birlikte aç ..." vb.)?

İçindeki .app dosyasını sarıcı komut dosyası ile değiştirmeyi düşündüm, ancak uygulama güncellemesinden sonra üzerine yazılacak ve her seferinde geri yüklemem gerekecek.

Yanıtlar:


5

Evet, ikili dosyayı değiştirebilir veya hatta Info.plist dosyasını değiştirebilirsiniz, ancak ikili dosyayı değiştirmek gibi, uygulama her güncellendiğinde bunu tekrar yapmanız gerekecektir. Uygulamayı, güncellendiğinde üzerine yazılmayacak şekilde değiştirmeden yapmanın bir yolu yoktur.

Bir Launch Agent ile otomatik olarak değişiklik yapabilirsiniz.
Aşağıdaki kaydet ~/Library/LaunchAgentsolarak com.yourname.youragent.plist, daha sonra çalıştırın 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>

Yukarıdaki komut dosyası WatchPathstüm değişiklikleri izleyecektir (bu durumda, bir uygulama için ikili dosyayı izler) ve cpikili dosyalarınızı / Applications içindeki uygulamaya kopyalamak için çalışır .


Yüklü uygulamaları otomatik düzeltme eki yapmayı düşünüyorum. Her şey /Applicationsdeğiştiğinde komut dosyamı otomatik olarak çalıştırmanın bir yolu var mı ? Ayrıca, herhangi bir uygulamanın kendisini değiştirmesini yasaklamak.
Equidamoid

@Equidamoid LaunchAgents kullanabilirsiniz; edited answer
grg

1
yani, örneğinizde cp /Users/.../MyApp /Applications...MyApp ikili dosyası her değiştiğinde çalışır? Teşekkürler!
Equidamoid

@Equidamoid Evet, kesinlikle!
grg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.