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

Diskutiere mit über: Unleserliche Plist Files (com.apple.loginwindow.plist), Binärformat?? im Mac OS X - Unix & Terminal Forum

  1. matzh

    matzh Thread Starter MacUser Mitglied

    Beiträge:
    22
    Zustimmungen:
    0
    Registriert seit:
    03.07.2005
    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
     
  2. matzh

    matzh Thread Starter MacUser Mitglied

    Beiträge:
    22
    Zustimmungen:
    0
    Registriert seit:
    03.07.2005
    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.
     
  3. Tekl

    Tekl MacUser Mitglied

    Beiträge:
    153
    Zustimmungen:
    3
    Registriert seit:
    03.06.2005
    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.
     
  4. matzh

    matzh Thread Starter MacUser Mitglied

    Beiträge:
    22
    Zustimmungen:
    0
    Registriert seit:
    03.07.2005
    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
     
    Zuletzt bearbeitet: 21.11.2005
  5. Tekl

    Tekl MacUser Mitglied

    Beiträge:
    153
    Zustimmungen:
    3
    Registriert seit:
    03.06.2005
    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?
     
  6. matzh

    matzh Thread Starter MacUser Mitglied

    Beiträge:
    22
    Zustimmungen:
    0
    Registriert seit:
    03.07.2005
    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.
     
Die Seite wird geladen...
Ähnliche Themen - Unleserliche Plist Files Forum Datum
mutt fehlermeldung 'to many open files' Mac OS X - Unix & Terminal 02.11.2011
Vi mehrere Files bearbeiten Mac OS X - Unix & Terminal 30.09.2010
Verschiedene Files mit Terminal/Vim öffnen Mac OS X - Unix & Terminal 17.08.2010
Mehrere Files bearbeiten Mac OS X - Unix & Terminal 28.06.2010
mit 'sed' Strings in *.plist ersetzen... Mac OS X - Unix & Terminal 22.08.2008

Diese Seite empfehlen

Benutzerdefinierte Suche