Dies ist weder der erste, schon gar nicht der einzigste Eintrag im Netz zu diesem Thema, aber er ist mein Eintrag! Im Falle des Falles weiß ich, daß hier die Lösung steht, denn de facto benötige ich die Kommandos nie. Außerdem möchte ich mich ím Notfall nicht erst mit der Karrikatur einer technischen Anleitung befassen müssen [1, 2]:
Wie kann ich ein Mac OS X System
Sofern nicht bewusst geändert, Ihr Schlüsselbund-Kennwort ist verpflichtet, Ihnen die Original-Administrator-Passwort. [...] Mit der folgenden Methode, um Ihr Administrator-Passwort wird von Ihnen verlangen, um weitere Schritte, um auch Ihr Schlüsselbund-Kennwort. [...]
Wie kann ich ein Mac OS X Schlüsselbund Passwort vergessen?
Ihr Standard-Schlüsselbund bindet an Ihren Administrator-Kennwort auf die Schaffung und wird dies auch weiterhin zu aktualisieren, wenn Sie Ihre Administrator-Passwort über die Konten-Menü. [...] Werden Sie nicht mehr in der Lage, jede keychain, dass eine Passwort an Ihre Passwörter.
Wenn man soetwas liest, fragt man sich schon, ob es nicht doch sinnvoll ist, den Straftatbestand der Lingualvergewaltigung einzuführen. Aber jetzt Butter bei die Fische. Je nach Ausgangslage gibt es mehrere Möglichkeiten:
#:~>passwd Benutzername #:~>reboot
#:~>fsck -y #:~>mount -uaw / #:~>rm /var/db/.AppleSetupDone #:~>reboot
Je nachdem was sich vorher ereignet hat, kann ein kurzer Test des Dateisystems sinnvoll sein, daher das optionale fsck -y am Anfang. Nach einem Neustart wird man aufgefordert einen Benutzer mit Administratorrechten anzulegen. Mit diesem neuen Adminsitrator kann dann das Passwort des urprünglichen Nutzers zurückgesetzt werden.
#:~>mount -uw / #:~>launchctl load /System/Library/Launchdaemons/com.apple.DirectoryServices.plist #:~>dscl - -delete /Users/[Benutzername]/ AuthenticationAuthority #:~>passwd Benutzername #:~>reboot
Also zuerst Passwort löschen, dann Passwort wieder setzen. Am besten altes Passwort wieder setzten, da die Anmeldung am Schlüsselbund noch mit dem alten Passwort erfolgen muss.
Labels: IT, MacOS X, Passwort, plist
Wer den Mailinator und seine Verwandten benutzt, hat unter Umständen das Problem, daß er einerseits nicht weiß wann die erwartete e-Mail eintrifft, andererseits aber Mailinator selbige nach ein paar Stunden löscht. Dies läßt sich durch ein kleines Bashskript beheben, welches die e-Mails abholt.
Was macht das Skript genau?
#!/usr/bin/env bash
# Skript Mailinatorabfrage
# Beschreibung Holt e-Mail von Mailinator.com ab.
# Parameter $1: Die e-Mailadresse die abgefragt werden soll; optional.
# $2: Der Pfad wo die Mail(s) gespeichert werden sollen; optional.
Mailadresse=${1:-'Test@mailinator.com'}
Pfad=${2:-$HOME'/Downloads/'}${Mailadresse}_$(date "+%Y.%m.%d-%H%M")
Domain='http://'${Mailadresse#*@}
URL_Fach=$Domain'/maildir.jsp?email='${Mailadresse%@*}'&x=0&y=0'
Inhalt='maildir.html'
mkdir $Pfad
cd $Pfad
curl -A "Anonymous" $URL_Fach -o $Inhalt
if [ -e $Inhalt ]; then
for Zeile in $(cat $Inhalt | grep -Eio '/showmail.jsp([^>])*')
do
Betreff=$(grep -Eio "${Zeile#*&}.*</a>" < $Inhalt)
Betreff=${Betreff#*>}
Betreff=${Betreff%<*}
curl -A 'Anonymous' ${Domain}${Zeile%>*} -o "$Betreff"'.html'
done
srm -srf $Inhalt
fi
Das Skript hat zwei optionale Parameter
Die regelmäßige Ausführung des Skriptes ist unter Linux ein cron-Job, unter MacOS X wird eine separate plist-Datei benötigt. Der Aufbau ist relativ einfach, zur Erstellung werden folgende Angaben benötigt:
Ausgehend von diesen Annahmen kann mit jedem beliebigen Texteditor die plist erstellt werden:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <false/> <key>Label</key> <string>Mailinator.Test</string> <key>ProgramArguments</key> <array> <string>/Users/Loginname/bin/Mailinatorabfrage</string> <string>Test@mailinator.com</string> </array> <key>RunAtLoad</key> <true/> <key>StartInterval</key> <integer>3600</integer> </dict> </plist>
Die Datei jetzt noch als reinen Text unter dem Namen »Mailinator.Test.plist« in »~/Librqary/LaunchAgents« speichern.
Die Angaben unter <array> sind übrigens nichts anderes als ein Skriptaufruf im Terminal mit Parameter:
#:~/bin>Mailinatorabfrage Test@mailinator.com
Ab dem nächsten Neustart wird dann jede Stunde dieses Skript ausgeführt. Eleganter steuert man es aber über die Kommandozeile. Jeweils eines der nachfolgenden (selbsterklärenden ?) Kommandos im Terminalfenster aufrufen:
#:~/Library/LaunchAgents>launchctl load Mailinator.Test.plist #:~>launchctl start Mailinator.Test #:~>launchctl list Mailinator.Test #:~>launchctl stop Mailinator.Test #:~/Library/LaunchAgents>launchctl unload Mailinator.Test.plist #:~>launchctl help
Wie auch bei anderen Dingen, sollte man Fairness walten lassen und die automatishe Abfrage nicht unnötig und immerwährend laufen lassen. Der Zeitraum in dem Mails eintreffen können ist ja meist auf wenige Stunden beschränkt. Es ist aber gut geeingnet längere Arbeitspausen oder die Nacht abzudecken.
Wer seine eingehenden Mails nur so Abfragen und speichern will kann das Skript natürlich auch direkt im Terminal aufrufen oder in ein kleines AppleSkript einbetten und per Menü im Finder aufrufen:
tell application "Finder" activate do shell script "Mailinatorabfrage 'Test@mailinator.com'" end tell
Labels: Bash, cURL, IT, MacOS X, Mailinator, plist, Skripttipp, Terminal
Standardmäßig erstellt TimeMachine stündlich eine Sicherungskopie der zuletzt geänderten Dateien. Wem die stündliche Sicherung nicht gefällt, kann den Zeitabstand nach seinen Vorstellungen anpassen. Mir einem beliebigen Texteditor die Datei »/System/Library/LaunchDaemons/com.apple.backupd-auto.plist« öffnen und den Sicherungsintervall in Sekunden eintragen:
<?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.apple.backupd-auto</string> <key>ProgramArguments</key> <array> <string>/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper</string> <string>-auto</string> </array> <key>StartInterval</key> <integer>3600</integer> <key>RunAtLoad</key> <false/> <key>KeepAlive</key> <false/> </dict> </plist>
Der Wert zwischen <integer></integer> gibt den Backupintervall in Sekunden an (hier: 3600 = 1 Std.). Zum Ändern der Datei werden Administratorrechte benötigt.
Labels: IT, MacOS X, plist, TimeMachine