Migration von Benutzern und Gruppen
Synopsis
Dieser Artikel erklärt, wie man User, Gruppen und deren Datenbestände schnell und sicher zwischen zwei Systemen überträgt.
Zu sichernde Dateien und Ordner
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
- /home
- /groups
Anmerkung zu /groups: Debian pflegt natürlich kein spezifisches Gruppenverzeichnis. Falls das Originalsystem einen zentralen Speicherplatz für Gruppendaten hat, so soll dieses damit gemeint sein.
root-Rechte
Wir brauchen natürlich root-Rechte.
Einpacken
Erstellen wir einen zentralen Sammelort für all diese Daten, z. B. in /opt.
mkdir /opt/migrate
Benutzerkonten vorbereiten
Debian kann maximal 65535 UIDs verwalten: von 0 bis 65534. Dabei ist/sind
- 0 für root reserviert.
- 1-99 für globale Systemkonten reserviert.
- 100-999 für weitere Systemkonten reserviert.
- 1000-29999 für normale Nutzerkonten reserviert.
- 30000-65533 für Maschinenkonten reserviert.
- 65534 für nobody reserviert.
Hinweis: Andere GNU/Linux Distributionen bzw. andere UNIXe weichen meistens von dieser Konvention ab, so beginnen z. B. bei RHEL die normalen Nutzerkonten bei 500. |
Uns interessieren nur Konten von 1000-65533. Deswegen greifen wir uns erst mal diese:
awk -F: '($3>=1000) && ($3<65534)' /etc/passwd > /opt/migrate/passwd.move
Dann brauchen wir ggf. noch die Shadow Passwörter. In /etc/shadow stehen leider keine UIDs, also müssen wir ein wenig tricksen:
awk -F: '($3>=1000) && ($3<65534)' /etc/passwd | cut -d: -f1 | egrep -f - /etc/shadow > /opt/migrate/shadow.move
Gruppenkonten vorbereiten
Die GIDs organisieren sich analog zu den UIDs. Auch hier wollen wir nur Benutzer- bzw. Maschinenkonten:
awk -F: '($3>=1000) && ($3<65534)' /etc/group > /opt/migrate/group.move
Falls jemand tatsächlich Gruppenpasswörter benutzen sollte, so muss man auch die Datei gshadow kopieren. Das ist einfach:
cp /etc/gshadow /opt/migrate/gshadow.move
Home und Group Folder ohne Netzwerk kopieren
Wir wollen alle Rechte und Attribute erhalten, also benutzen wir tar:
tar -czvplf /opt/migrate/homes.tar.gz /home
tar -czvplf /opt/migrate/groups.tar.gz /groups
Home und Group Folder via SSH/rsync kopieren
Sollte auf dem neuen System bereits ein SSH-Service laufen, so können wir direkt mit rsync (oder sftp) unsere Daten kopieren:
rsync -avtP -e ssh /home root@neuessystem:/home
rsync -avtP -e ssh /groups root@neuessystem:/groups
Der Umzug
Bringe die Dateien aus /opt/migrate auf das neue System, z. B. per USB-Stick oder SSH.
Auspacken
Es ist eine gute Idee, die Dateien auf dem neuen System zu sichern, bevor man die Migration angeht. Dazu kopiere man die oben erwähnten Dateien an einen sicheren Ort, z. b. /root. Sollte eine passwd-, shadow- oder group- Datei vorhanden sein, so sollte man diese auch in Sicherheit bringen.
Warnung: Der folgende Schritt erfordert Aufmerksamkeit. Es ist von entscheidender Bedeutung, dass die Dateien angehängt (>>) werden. Sonst überschreibt man die Originaldateien und dann geht nichts mehr! |
Nun hängt man die alten Benutzer und Gruppen an die entsprechenden Dateien an.
cat /pfad/zu/passwd.move >> /etc/passwd
cat /pfad/zu/shadow.move >> /etc/shadow
cat /pfad/zu/group.move >> /etc/group
Falls notwendig kopieren wir die gshadow-Datei:
cat /pfad/zu/gshadow.move >> /etc/gshadow
Nun wechselt man ins /-verzeichnis. Dort packen wir unsere Tarbälle aus:
tar -xzvf /pfad/zu/homes.tar.gz
tar -xzvf /pfad/zu/groups.tar.gz
Neustart
Wird das System nun neu gestartet, so stehen die neuen Benutzer und Gruppen zur Verfügung.