#!/bin/bash # # Kopiert nach einer Neuinstallation die alten Benutzer und ihre Daten # von einer "alten" Arktur-Installation (Version 3.3) auf /dev/hdc (Master # am sekundaeren IDE-Kanal) auf /dev/hda (Master am primaeren IDE-Kanal) # des "neuen" Arkturs (Version 3.3). # Falls die Festplatte des "alten" Arkturs nicht an /dev/hdc haengt, # muss die Zeile 20 angepasst werden. # # Peter Somm, 28.02.2003, 03.11.2003, 01.08.2004 # Ergaenzungen durch Helmut Hullen, 08.05.2003 # Ergaenzungen durch Pascal Schmitt, 28.10.2003 # # Vorbereitungen old_arktur=/dev/hdc # Prüfen, ob die Platte existiert (Hullen) if [ -z "$(fdisk -l $old_arktur)" ] then echo Ich habe keine Festplatte $old_arktur gefunden. echo Ich gebe deshalb auf. exit 1 fi # letzte Chance, um abzubrechen echo echo "Die Uebernahme der Benutzerverzeichnisse kann lange (1GB = 5min)" echo "Falls dazu keine Zeit ist, kann hier mit CRTL-C abgebrochen werden." echo "Sonst bitte die ENTER-Taste druecken." read # Abfrage, ob eMails und News uebernommen werden sollen (Hullen) echo echo Sorgen Sie bitte dafuer, dass ausser Ihnen niemand auf Arktur zugreift. echo read -p "Soll die noch nicht abgeholten eMails der Benutzer kopiert werden [j/N]? " eMail read -p "Sollen die lokalen News kopiert werden [j/N]? " News # Mount-Points erzeugen echo "> Vorbereitungen laufen - bitte etwas Geduld..." mkdir /tmp/oldroot mkdir /tmp/oldvar mkdir /tmp/oldhome # Mounten der drei Partitionen mount "$old_arktur"1 /tmp/oldroot mount "$old_arktur"3 /tmp/oldvar mount "$old_arktur"4 /tmp/oldhome sleep 15 echo "> Vorbereitungen abgeschlossen." # User-Datenbank erzeugen, kopieren und User neu erzeugen echo "> Benutzer auf neuen Arktur uebernehmen - bitte etwas Geduld..." cd /tmp/oldroot/etc/Systemverwaltung co user cp /tmp/oldroot/etc/Systemverwaltung/user /etc/Systemverwaltung/user /usr/lib/ods-server/bin/user -install rcs -u /etc/Systemverwaltung/user >/dev/null 2>&1 echo "> Benutzer auf neuen Arktur uebernommen." # Projektgruppen uebernehmen grep ^p_ /tmp/oldroot/etc/group >> /etc/group grep ^p_ /tmp/oldroot/etc/gshadow >> /etc/gshadow echo "> Projektgruppen auf neuen Arktur uebernommen." # Passwoerter uebernehmen #alte Maschinenaccounts fuer Windows 2000 und XP erzeugen for element in `grep ^[A-Z0-9-_]*$:x:[5-9][0-9][0-9]:100:NT-Maschinenaccount /tmp/oldroot/etc/passwd | cut -f1 -d$` do mkntclient $element done #alte User-Passworter in /etc/shadow uebernehmen (Schmitt) #alle Benutzer mit UID zwischen 500 und 999 for element in `grep :[5-9][0-9][0-9]: /tmp/oldroot/etc/passwd | cut -f1 -d: ` do for linien in `grep ^$element: /tmp/oldroot/etc/shadow` do echo $linien >> /etc/shadow done done #alle Benutzer mit UID zwischen 1000 und 9999 for element in `grep :[1-9][0-9][0-9][0-9]: /tmp/oldroot/etc/passwd | cut -f1 -d:` do for linien in `grep ^$element: /tmp/oldroot/etc/shadow` do echo $linien >> /etc/shadow done done chown root:shadow /etc/shadow chmod 600 /etc/shadow echo "> Passwoerter der Benutzer und der Maschinen uebernommen." # Uebernehmen der Userdaten (alles in /home ausser /home/www und /home/adm/software) cd /tmp/oldhome tar cpSf - . --exclude=www --exclude=adm | (cd /home ; tar xpSvf - ) cd /tmp/oldhome/adm tar cpSf - . --exclude=software | (cd /home/adm ; tar xpSvf - ) echo "> Daten der Benutzer uebernommen." # Uebernehmen der Samba-Passworter cp /tmp/oldroot/etc/samba/private/* /etc/samba/private echo "> Samba-Passwoerter uebernommen." # Uebernehmen der Zugriffsrechte fuer das Admin-Interface cp /tmp/oldhome/www/admin/.htpasswd /home/www/admin/.htpasswd cp /tmp/oldroot/etc/sudoers /etc/sudoers echo "> Zugriffsrechte auf Admin-Interface uebernommen." # Uebernehmen nicht abgeholter eMails if [ "$eMail" = j -o "$eMail" = J ] then cd /tmp/oldvar/spool tar cpSf - mail | (cd /var/spool ; tar xpSf - ) echo "> eMails uebernommen." fi # Uebernehmen der News if [ "$News" = j -o "$News" = J ] then cd /tmp/oldvar tar cpSf - spool/news | (cd /var ; tar xpSf - ) tar cpSf - lib/news | (cd /var ; tar xpSf - ) echo "> News uebernommen." fi # Abschluss echo "> Aufraeumarbeiten laufen - bitte etwas Geduld..." cd / sleep 15 umount /tmp/oldroot umount /tmp/oldvar umount /tmp/oldhome rmdir /tmp/oldroot rmdir /tmp/oldvar rmdir /tmp/oldhome echo "> Aufraeumarbeiten abgeschlossen - Arktur wird neu gestartet." reboot