• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

launchctl - postfix nicht aktiv nach reboot - SIP problem

zorn

Zuccalmaglios Renette
Registriert
18.02.06
Beiträge
260
Hallo,


Ich habe ein Problem auf meinem MacBook Air OS X 10.11.4 bezüglich Postfix und SIP (System Integrity Protection). Die vom System gelieferte /System/Library/LaunchDaemons/org.postfix.master.plist ist leider mit einem Timeout konfiguriert und per default “disabled”. SIP möchte ich selbstverständlich “enabled” belassen. Postfix soll nach einem Reboot permanent, ohne Timeout laufen.


In nachfolgendem Link wird ein Workaround beschrieben:

http://stackoverflow.com/questions/30768087/restricted-folder-files-in-os-x-el-capitan


Man legt sich also im “Userland” unter /Library/LaunchDaemons/org.postfix.master.plist eine neue org.postfix.master.plist und nimmt die entsprechenden Anpassungen vor. Dann lädt man die neue .plist per launchctl.


Ich habe die Parameter der org.postfix.master.plist wie hier beschrieben angepasst:

http://apple.stackexchange.com/ques...ke-postfix-run-permanently-on-lion-not-server


bash-3.2# diff /Library/LaunchDaemons/org.postfix.master.plist /System/Library/LaunchDaemons/org.postfix.master.plist -y --suppress-common-lines

Code:
        <key>Disabled</key>                      <

        <false/>                          <

                                                                       >            <string>-e</string>

                                                                       >            <string>60</string>

        <key>KeepAlive</key>                      <

        <true/>                              <

        <key>RunAtLoad</key>                      <

        <true/>                              <


Hier wird die vom System gelieferte plist “unloaded”.

launchctl unload /System/Library/LaunchDaemons/org.postfix.master.plist


Leider kann ich mit keinem der beiden folgenden “load” erreichen dass launchctl nach einem Reboot auch meine geänderte /Library/LaunchDaemons/org.postfix.master.plist anzieht.

launchctl load /Library/LaunchDaemons/org.postfix.master.plist

launchctl load -w /Library/LaunchDaemons/org.postfix.master.plist


Kann mir jemand einen Tip geben was ich falsch mache?


Danke,


\\'.
 
Die Kommandos load und unload wirken nur einmalig.
Um ihren Status dauerhaft zu etablieren: Den Switch -w setzen.

Ausserdem laufen LauchDaemons im root-Kontext und können daher nur mit sudo bearbeitet werden.
plist-Dateien die nicht auf die Permissions root:wheel 644 gestellt sind werden nicht akzeptiert.
(Obacht: Solche Fehler führen ratzfatz zu einem unstartbaren System.)
 
  • Like
Reaktionen: m1LLo
Naja - wie man oben sieht habe ich doch -w versucht (genauso wie ohne -w). Leider führt das nicht wie gehofft dazu dass der Dienst nach einem Reboot von selbst startet. root:wheel 644 ist so eingestellt. Mir gehen hier leider die Ideen aus...
 
Ist der Dienst im System-Verzeichnis denn auch dauerhaft deaktiviert bzw. ‘unloaded’ oder wird das vom System wieder eingeschaltet nach einem Neustart?
 
  • Like
Reaktionen: zorn
Aha - guter Hinweis. Es scheint so zu sein dass der /System/Library/LaunchDaemons/org.postfix.newaliases.plist geladen wird. Ich kann also /Library/LaunchDaemons/org.postfix.master.plist erst nach einem unload von System/Library/LaunchDaemons/org.postfix.newaliases.plist laden. Leider kann ich den aufgrund SIP nicht permantent "unloaden". Oder doch?
 
Ok - Danke für die Unterstützung. Problem gelöst. Habe meine .plist in
/Library/LaunchDaemons/org.postfixUserland.master.plist umbenannt. So kommen sich die /System und /Library plist nicht in die Quere. Es sind jetzt nach dem Start zwar beide geladen, aber die /System ohne PID, da durch SIP unveränderbar "disabled".

thx
 
Das aktivieren bzw deaktivieren von Diensten wird durch SIP überhaupt nicht tangiert.
(Der "Disabled" Key in der plist-Datei ist ein Relikt aus früheren Zeiten und ist weitestgehend wirkungslos. Er definiert lediglich den Vorgabewert, der nur dann zur Anwendung kommt wenn der Status für einen bestimmten Dienst noch nicht anderweitig explizit gesetzt wurde --> mit "launchctl load|unload -w ..." )
 
Ok - aber warum dann das hier?
launchctl unload /System/Library/LaunchDaemons/org.postfix.newaliases.plist
/System/Library/LaunchDaemons/org.postfix.newaliases.plist: Operation not permitted while System Integrity Protection is engaged
 
Du deaktivierst SIP, nimmst die gewünschten Änderungen vor und schaltest es dann wieder ein.
Wo bitte ist das Problem damit?
 
Wie gesagt, Problem gelöst. Wollte nur darauf hinweisen dass SIP eben doch das aktivieren und deaktivieren von Diensten tangiert. Mein Problem ist gelöst. Nochmals danke für die Unterstützung.