Migracja użytkowników
Migracja passwd, shadow, group, gshadow na nowy komputer |
Migracja passwd, shadow, group, gshadow na nowy komputer
Jeżeli chcesz przenieść dane na inny komputer z linuxem wiąże się to nie tylko z przekopiowaniem danych użytkowników ale ich uprawnień. Uprawnienia mogą być przechowywane np. w ldap, nis, pliki systemowe. Ja przedstawię przeniesienie użytkowników na nowy komputer jeśli są oni trzymani tylko w plikach shadow, passwd, group, gshadow z zachowaniem UID i GID (uprawnień użytkowników i grup). W opisie uwzględniłem konta i grupy komputerów kończące się $ czyli konta samby, które również są przenoszone. Wszystko robisz na własną odpowiedzialność.
Co należy przenieść:
Wykonanie kopii na maszynie źródłowej: Tworzymy katalog na dane: mkdir /kopia_danych
Ustawiamy zmienną która definiuje od jakiego UID i GID zaczynają się konta użytkowników. W Debianie, Ubuntu jest 1000, w RedHat i CentOS jest to 500. export UIDGID=1000
Export /etc/passwd (ignorujemy konta systemowe): awk -v LIMIT=$UIDGID -F: '($3>=LIMIT) && ($3!=65534)' /etc/passwd > /kopia_danych/passwd.mig
Export /etc/group (ignorujemy grupy systemowe): awk -v LIMIT=$UIDGID -F: '($3>=LIMIT)&&($3!=65534)' /etc/group > /kopia_danych/group.mig
Export /etc/shadow (ignorujemy konta systemowe): awk -v LIMIT=$UIDGID -F: '($3>=LIMIT)&&($3!=65534) {print "^"$1}' /etc/passwd | sed -e 's/\$/'\\\\\$'/g' | egrep -w -f - /etc/shadow > /kopia_danych/shadow.mig
Export /etc/gshadow: awk -v LIMIT=$UIDGID -F: '($3>=LIMIT)&&($3!=65534) {print "^"$1}' /etc/group | sed -e 's/\$/'\\\\\$'/g' | egrep -w -f - /etc/gshadow > /kopia_danych/gshadow.mig
Wykonanie kopii danych użytkowników: tar -cjvf /kopia_danych/home.tar.bz2 /home
tar -cjvf /kopia_danych/mail.tar.bz2 /var/spool/mail
Wykonanie kopii uprawnień list ACL do plików i katalogów (jeśli są używane np. w systemie plików XFS): getfacl -R --skip-base /home > /kopie_danych/backup.acl
Przywrócenie danych na maszynie docelowej: Tworzymy katalog na maszynie docelowej ( na nowej maszynie ) oraz wykonujemy kopię oryginalnych plików: mkdir /kopia_danych
mkdir /kopia_danych/backup_org cp /etc/passwd /kopia_danych/backup_org/ cp /etc/shadow /kopia_danych/backup_org/ cp /etc/group /kopia_danych/backup_org/ cp /etc/gshadow /kopia_danych/backup_org/ i wgrywamy do katalogu /kopia_danych pliki ze starego komputera np. scp username@adres_ip_starego_komputera:/kopia_danych/* /kopia_danych
Odtworzenie kont i grup użytkowników: cd /kopia_danych
cat passwd.mig >> /etc/passwd cat shadow.mig >> /etc/shadow cat group.mig >> /etc/group cat gshadow.mig >> /etc/gshadow
Odtworzenie danych użytkowników: cd /
tar -jxvf /kopia_danych/home.tar.bz2 tar -jxvf /kopia_danych/mail.tar.bz2
Odtworzenie uprawnień ACL do plików i katalogów (jeśli są używane np. w systemie plików XFS): setfacl --restore=backup.acl
|