Unter macOS gibt es einen eingebauten Passwortmanager, den Schlüsselbund bzw. die Keychain1. Und mit security
kann man die auch von der Kommandozeile aus benutzen.
Passworte auf der Shell unter macOS
So kann man die Standard-Keychain aufschließen:
1 2 3 |
|
Und so ein Passwort hinzufügen, hier ist es ein IMAP-Passwort:
1
|
|
Sehr wichtig ist dabei, dass man mit -r
ein Protokoll mitgibt2, sonst klappt das mit dem Hinzufügen gar nicht.
Den neuen Eintrag kann man sich dann auch in der GUI-Keychain angucken:
Das Passwort des Eintrags mit security
auch auf der Shell wieder auszulesen ist dank dem Paramater -w
3 für das find-internet-password
Subkommando ganz einfach4:
1 2 |
|
Ganz dummerweise gibt es keinen entsprechenden Parameter für den Usernamen. Hier muss man sich mit etwas Schnipselei an die Gesamtausgabe begeben und nur dieacct
-Zeile betrachten5:
1 2 |
|
Passwort in imapfilter verwenden
Super. Klasse. Was macht man nun damit? Zum Beispiel kann man auf einem eh da Mac mini einen eigenen imapfilter laufen lassen, um die eher schwachbrüstigen Filterfunktionen6 von iCloudmail deutlich zu verbessern. Und mit diesem Vorgehen muss man das Passwort dann nicht im Klartext in einer Textdatei rumliegen haben. Passworte im Klartext sind eine Doofe Idee™.
Der Loginteil für ein iCloud-Mail Konto schaut dann aus wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Wie das Suffix der Datei schon nahelegt ist das hier im Prinzip ein Lua-Programm. Die Bash-Einzeiler von oben werden per pipe_from
Funktion eins zu eins übernommen um Username und Passwort zu bekommen. Beim Passwort wird in Zeile 8 noch der hier überflüssige7 Zeilenumbruch entfernt. Der ist nicht Teil des Passworts, das klappt sonst eher schlecht mit dem Login.
Beim Usernamen müssen vor dem Entfernen des Zeilenumbruchs in Zeile 4 außerdem in Zeile 3 die Anführungszeichen entfernt werden. Das ginge vielleicht auch irgendwie durch escapen der einfachen Anführungszeichen von tr
in der zweiten Zeile aber ich habe mich hier für den Weg des geringsten Wiederstandes entschieden und entferne die Anführungszeichen ebenfalls per gsub
in Lua. So läuft das jetzt super. Einige Beispielregeln finden sich auch hier, noch mehr und viel ausführlichere Beispiele hier sowie dort.
Einige andere8 Vorgehensweisen um an ein Passwort für imapfilter
zu kommen finden sich auch in dieser Beispielconfig.
Das ganze läuft bei mir nun seit vielen Monden in einem tmux
pane vor sich hin9:
1 2 3 4 5 6 7 |
|
Das ergibt dann solche Ausgaben:
1 2 3 4 5 |
|
Alles in allem ist imapfilter
sehr zum feinstreifigen durchsieben und filtern von allen Postfächern geeignet, die selbst keine derartigen Funktionen mitbringen. Anstelle eines Mac minis kann natürlich so gut wie alles benutzt werden, was eh da ist. Nicht mal antike Raspberry Pis sollten hier irgendeine Art von Load verspüren.
(via: diesem imapfilter GitHub issue)
-
Ich bleibe mal beim englischen Begriff…↩
-
Auch wenn man es eigentlich gar nicht braucht, bzw. ein anderes…↩
-
-w
Display only the password on stdout↩ -
Allerdings wird nach dem Passwort auch ein Zeilenumbruch ausgegeben, das wird später noch wichtig werden…↩
-
Hier wird der Username allerdings in Anführungszeichen ausgegeben und ebenfalls mit einem Zeilenumbruch abgeschlossen. Die Anführungzeichen könnte man mit einer weiteren Pipe und
tr -d '"'
entsorgen. In der eigentlichen Verwendung mitìmapfilter
führte das aber zu Problemen und musste anders gelöst werden, immer ist was…↩ -
Ernsthaft, das war in Googlemail viel besser…↩
-
Auf der Shell hübsch, hier falsch…↩
-
Eher für Linux gedachte…↩
-
Ja, das gehört mal auf einen LaunchAgent umgestellt…↩