Nachdem meine Firma neue Server gekauft habe, mache ich eine Top-down-Upgrade des Serverraum. Da sich die gesamte Hardware verändert, kann ich kein Bare-Metal-Klonwerkzeug zur Migration verwenden. Mit dem Befehl newusers
von Debian kann ich alle Benutzer vom alten Server in Massen erstellen. Für die Datei/etc/shadow können Sie die zweite Spalte aus Ihrer Datei shadow.sync (aus dem alten Server) in die zweite Spalte des zugeordneten Kontos im neuen System kopieren. Dadurch werden die Kennwörter für Ihre Konten auf das neue System übertragen. Allerdings bin ich nicht sicher, wie dies programmatisch mit awk (oder etwas anderes, das ich in mein Shell-Skript integrieren kann, das ich bereits eingerichtet habe).Awk - ersetzen Sie coumn 2 in Tabelle 1 von coumn 2 in Tabelle 2 basierend auf übereinstimmenden Daten in Spalte 1 (gemeinsam zwischen Tabellen)
shadow.sync enthält Folgendes (Benutzer & Passwörter aus Sicherheitsgründen geändert) Dies ist die Datei, die in die aktuelle Shadow-Datei kopiert werden soll, die fast identisch aussieht, außer dass die Daten in der zweiten Spalte die INCORECT-Werte haben.
Eine eingehende Erklärung der Felder für die/etc/shadow Datei kann here
user1:$6$HiwQEKYDgT$xYU9F3Wv0jFWHmZxN60nFMkTqWn87RRIOvx7Epp57rOmdHN9plJgjhC.jRVVNc1.HUaqSpX/ZcCEFSn6RmQQA0:17531::0:99999:7:::
user2:$6$oOuwJtrIKk$THLsfDppLI8QVw9xEOAaIoZ90Mcz3xGukVdyWGJJqygsavtXvtJ8X9ECc0CfuGzHp0pHNSAqdZY9TAzF5YKLc.:17531::0:99999:7:::
user3:$6$IEHAyRsokQ$e5K3RicE.PUAej8IxG9GnF/SUl1NQ57pqzUVuAzsP8.89SNhuaKE1W7kG5P4hbzV23Bb2zWHx353t.e9ERSVy.:17531::0:99999:7:::
user4:$6$lFOIUQvxdb$W5ITiH/Y021xw1vo8uw6ZtIOmfKjnNnC/SttQjN85MHtLbFeQ2Th5kfAIijXC81CRG4T0kJQ3rzRNRSyQHjyb1:17531::0:99999:7:::
user5:$6$RZbtYxWiwE$lnP8.tTbs0JbLZg5FsmPR8QvrJARbcRuJi2nYm1okwjfkWPkj212mBPjVF1BTo2hVCxLGSw64Cp6DgXheacSx.:17531::0:99999:7:::
Im Wesentlichen muß i Spalte 1 (username) zwischen der sync-Datei und der Schattendatei und kopiert Übereinstimmung gefunden Spalte 2 aus der Sync-Datei über der gleichen Spalte der tatsächlichen Shadow-Datei. Von Hand zu gehen wäre schrecklich, da ich 90 Server habe, die ich mit über 900 Benutzern migrieren würde.
Zufall shadow.sync Datei für die Demonstration wurde mit erstellt:
#!/usr/bin/env python
import random, string, crypt, datetime
userList = ['user1','user2','user3','user4','user5']
dateNow = (datetime.datetime.utcnow() - datetime.datetime(1970,1,1)).days
for user in userList:
randomsalt = ''.join(random.sample(string.ascii_letters,10))
randompass = ''.join(random.sample(string.ascii_letters,10))
print("%s:%s:%s::0:99999:7:::" % (user, crypt.crypt(randompass, "$6$"+randomsalt), dateNow))
Bitte beachten Sie, dem Python-Skript nur zu Demonstrations war und nicht für die tatsächlichen Produktionsdaten. Wenn Benutzer dem Server hinzugefügt werden, wird die Datei/etc/shadow mit dem in der Befehlszeile angegebenen Kennwort generiert. Die Originaldaten (von shadow.sync) muss „Zusammengeführt“ mit den Daten in/etc/shadow werden, nachdem der newusers
Befehl ausgeführt wird (die im Wesentlichen jedes Passwort zu dem Buchstaben x Sets)
Schreiben Sie die gewünschte Ausgabe und einige Code, den Sie versucht haben, (zeigen einige Mühe!). – PesaThe
@PesaThe Obwohl ich ein AWK oder sogar Perl-Skript bevorzugen würde, da sie viel schneller bei der Verarbeitung von Daten in großen Mengen sind, habe ich es repariert, danke für die Hilfe. –