Machen, Mac OSX launchctl starten eines Prozesses als root beim Start

Meine Frage ist, wie man ein MacOSX-Dämon-Prozeß mit launchd starten Sie mit root-rechten automatisch nach einem reboot?

Bin ich eine Anwendung schreiben, die für Sie im Haus verwenden, die blockiert den Zugriff auf Webseiten. Es ist in python geschrieben und ändert die /ect/hosts-Datei deaktivieren oder aktivieren Sie die aufgelisteten urls. Die wichtigste Anwendung in django und ich erstellt eine python-twisted-daemon, die die tatsächliche änderung der Datei /etc/hosts als root-access-Rechte sind erforderlich.

Habe ich eine plist-Datei, die Werke mit ein kleines Problem. Nach dem Neustart des daemon-Prozesses hat meine normale logon-Berechtigungen anstelle von root-Privilegien.

Ist ein workaround, den Prozess zu stoppen mit meinem normalen Privilegien, dann Start-Prozess mit sudo.

launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 

Die plist-Datei

<?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.balanceinfosystems.socialshields.twisted</string>
    <key>Program</key>
    <string>/source/social_shields/social_shields_twisted.py</string>
    <key>KeepAlive</key>
    <true/>
  </dict>
</plist>
Schreibe einen Kommentar