Unleserliche Plist Files (com.apple.loginwindow.plist), Binärformat??

  1. matzh

    matzh Thread StarterMacUser Mitglied

    Mitglied seit:
    03.07.2005
    Beiträge:
    22
    Zustimmungen:
    0
    Hallo,

    ich würde gerne das automatische Login nur unter bestimmten Bedingungen (zu bestimmten Zeiten) aktivieren.
    (Tiger 10.4.2)
    Dazu habe ich mir 2 Shell-Scripts geschrieben, die das
    /Library/Preferences/com.apple.loginwindow.plist File entsprechend anpassen.

    (Die notwendigen keys sind:
    <key>autoLoginUser</key><string>benutzername</string>
    <key>autoLoginUserUID</key><integer>501</integer>, oder welche UID auch immer, falls dies jemanden interessiert, aber das nur am Rande)

    Sind die entsprechenden Keys im plist File und man startet neu, gibt's einen Autologin, ansonsten muss man sein Passwort eingeben, es funktioniert also prinzipiell.

    Nun ist aber jedesmal nach dem Neustart oder nach Manipulation in den Systemeinstellungen das Property List file total verhunzt.
    Mit dem Property List Editor kann man das lesen, dann wieder abspeichern und alles ist wieder xml.
    Ich glaube Apple hat noch ein Binärformat und ich vermute, das die plist in diesem Format abgespeicher wird, aber wie kann ich Sie dann wieder umwandeln, bevor ich sie (automatisch per Skript) editiere.

    Hintergrund ist, ich möchte zu best. Zeiten, egal ob ich zuhause bin oder nicht, Skripts ausführen, die das GUI und mein Schlüsselbund benutzen (Mailabfrage, z.B.).
    Dazu kann ich das Powermanagement benutzen, und mein PB fährt dann hoch
    Also einfachste Lösung wäre mich dann einzuloggen und ich kann alles problemlos benutzen. Dazu möchte ich Autologin aktivieren und dann einen Neustart ausführen. Ich möchte das Autologin nicht generell drinlassen.

    Wenn jemand weiss, wie root einen Benutzer direkt einloggen kann, ohne Passwortabfrage und mit GUI, würde das auch helfen.

    Matthias
     
    matzh, 31.10.2005
  2. matzh

    matzh Thread StarterMacUser Mitglied

    Mitglied seit:
    03.07.2005
    Beiträge:
    22
    Zustimmungen:
    0
    Sorry, wenn ich gleich auf mein eigenes Posting antworte, aber so ist's halt mal im Forum zum Suchen ;)
    Code:
    plutil -convert xml1 com.apple.loginwindow.plist
    im Terminal.
     
    matzh, 31.10.2005
  3. Tekl

    TeklMacUser Mitglied

    Mitglied seit:
    03.06.2005
    Beiträge:
    153
    Zustimmungen:
    3
    Hallo Matzh,

    gelingt dir das eigentlich auch noch unter 10.4.3? Bei mir werden nämlich Manipulationen an der plist beim ausloggen auf die Werte zurückgesetzt, welche unter Systemeinstellung/Benutzer gemacht wurden. Also wenn ich manuell autoLoginUser eintrage und der Autologin in der GUI deaktiviert war, ist nach einem Reboot autoLoginUser wieder weg.
     
    Tekl, 21.11.2005
  4. matzh

    matzh Thread StarterMacUser Mitglied

    Mitglied seit:
    03.07.2005
    Beiträge:
    22
    Zustimmungen:
    0
    Hallo Tekl,

    hab's gerade probiert. Scheint noch zu funktionieren.
    Hier mein komplettes "alogin_on" Skript, welches ich als root ausführe. Nach einem anschliessenden reboot bin ich ohne loginwindow eingeloggt:
    Code:
    #!/bin/bash
    fname='/Library/Preferences/com.apple.loginwindow.plist'
    outfile='/Library/ShellScripts/alogin_flag'
    user=benutzername
    plutil -convert xml1 $fname
    if grep -q autoLogin $fname
    then
      echo "alogin is already turned on, nothing done"
    else
      cat $fname | sed 's/<dict>/<dict>  \
    	<key>autoLoginUser<\/key>  \
    	<string>'$user'<\/string>  \
    	<key>autoLoginUserUID<\/key>  \
    	<integer>501<\/integer>/' > temp.plist
      mv temp.plist $fname
      date > $outfile
      echo $user >> $outfile
    fi
    Wenn ich's mir jetzt anschaue, verstehe ich selber nicht mehr, wieso der Benutzername in '$user' richtig interpretiert wird, aber es funktioniert, naja... habe wohl solange daran "herumgefummelt", bis es ging.

    Gruss

    Matthias
     
    matzh, 21.11.2005
  5. Tekl

    TeklMacUser Mitglied

    Mitglied seit:
    03.06.2005
    Beiträge:
    153
    Zustimmungen:
    3
    Hey, danke für das Skript. Ich wollte sowas für ein LogoutHook einsetzen und mein bisheriges Skript hat da immer versagt. Scheinbar muss die plist-datei einfach neu angelegt werden. Ist das bei dir eigentlich auch so, dass der Mac dann beim nächsten Start oft das Systempasswort erfragt?
     
    Tekl, 21.11.2005
  6. matzh

    matzh Thread StarterMacUser Mitglied

    Mitglied seit:
    03.07.2005
    Beiträge:
    22
    Zustimmungen:
    0
    Ja, ich glaube so etwas wie der Umweg über die temp.plist war da notwendig, oder es war mir wohler dabei.
    Das mit dem Systempasswort sagt mir jetzt nichts. Nachdem ich das Skript laufen lasse, bin ich sofort eingeloggt, ganz normal, als wenn ich vorher im Login-Window Nutzer und PW eingegeben hätte.
    Wenn ich es wieder ausschalte (Skript wie oben nur mit " cat $fname | sed '/autoLogin/,/integer/d' > temp.plist " , löscht alle Zeilen von autoLogin bis integer)
    erscheint das normale Login-Fenster.

    Mein Login-Window sah aber ganz anders aus (Username schon voreingestellt und nicht editierbar), als ich versucht habe, die loginwindow.plist völlig neu zu schreiben. Eventuell ist es so etwas bei Dir. Es gibt da noch so Tags wie "LastCompactInfo" usw., die wohl irgendwie benutzt werden.
     
    matzh, 21.11.2005
Die Seite wird geladen...
Ähnliche Themen - Unleserliche Plist Files
  1. aspirin
    Antworten:
    1
    Aufrufe:
    974
    aspirin
    12.11.2011
  2. mahed
    Antworten:
    12
    Aufrufe:
    1.042
    Olivetti
    02.10.2010
  3. mahed
    Antworten:
    1
    Aufrufe:
    1.251
    oneOeight
    17.08.2010
  4. mahed
    Antworten:
    7
    Aufrufe:
    527
  5. Killroy007
    Antworten:
    5
    Aufrufe:
    1.797
    Killroy007
    24.08.2008