Wenn Sie ein grosses Mac-Netzwerk in einer sicheren Umgebung verwalten, ist es erforderlich, das Kennwort des Administrator-Accounts regelmässig zu wechseln. Dies in einer 10.3 Umgebung zu tun ist eine durchaus einfache Angelegenheit, aber für jene, die noch alte 10.2.x Maschinen einsetzen, kann es sehr frustrierend sein. Im Folgenden finden Sie ein expect
Skript für den Einsatz mit 10.3 und ein bash
Skript für die Verwendung auf 10.2.x Maschinen.
Zuerst das ”expect” Skript
Der Grund warum ich diesen Weg gewählt habe, obwohl passwd
meine Bedürfnisse abdecken würde, ist, das ich ein Skript ohne Benutzer-Interaktion benutzen wollte, welches auf alle Maschinen gleichzeitig aufgespielt werden kann.
Erstellen Sie zuerst eine temporäre Textdatei mit dem Kennwort, das Sie verwenden möchten (es sollte nur von root
lesbar sein und sofort gelöscht werden, nachdem das Skript ausgeführt wurde). Dies war notwendig, weil einige Zeichen einen Fehler wie ”tcsh: sudo: No match” produzieren, wenn Sie versuchen, das Kennwort einfach nach dem Befehl einzugeben. Um es auf der Client-Maschine auszuführen, tippen Sie folgendes ein:
sudo cpasswd.tcl `cat password_file`
Dies ist der Inhalt meines cpasswd.tcl
Skripts. Beachten Sie, dass ich in der zweiten Zeile den Benutzernamen des Administrators eingesetzt habe. Ändern Sie dies auf den Kurznamen des Benutzers auf Ihrer Maschine.
#!/usr/bin/expect
spawn passwd admin
expect ”ssword:”
send [lindex $argv 0]r
expect ”ssword:”
send [lindex $argv 0]r
expect eof
Das ist alles für 10.3.x Maschinen, sehr einfach.
Die 10.2.x Maschinen benötigen etwas mehr Aufwand, da auf diesen weder expect
noch tcl/tk
standardmässig installiert ist. Das vollständige bash
Skript können Sie im Anhang herunterladen (speichern Sie es unter dem Namen «10.2_passwd.sh» ab). Es gilt jedoch einige Dinge zu beachten, bevor man das Skript einfach laufen lässt. Sie müssen zuerst eine Maschine manuell ändern, um eine «gute» Referenz-Maschine zu haben. Beachten Sie den zweiten Kommentar im Skript und führen Sie das nidumpd
wie beschrieben auf Ihrer Referenz-Maschine aus.
Dieses Skript sollte keine Kennwörter der eigenen Benutzer-Accounts auf der Maschine überschreiben, solange Sie die nidump
Datei von einer Maschine erzeugen, das nur den einen lokalen Account hat, den Sie auf dem Rest Ihrer Maschinen ändern möchten. Nochmal, ich habe für dieses Skript admin
als Account benutzt, ändern Sie es entsprechend Ihren Bedürfnissen. Und selbstverständlich sollten es gründlich auf seine Tauglichkeit getestet werden, bevor Sie es auf allen Maschinen einsetzen.