INFORMATICS

The Best

Przełącznik języka

Zaproś mnie na KAWE

Jeżeli podoba Ci się strona i chcesz wspomóc projekt!

Postaw mi kawę na buycoffee.to

This Site

Płatnik

CMS

Hardware

Uncategorised

Emulators

Powershell

Storage Array

DNS

FORTINET

Antivirus program

Licznik

2.png8.png9.png9.png7.png8.png0.png
Today285
Yesterday833
This week1916
This month19905
Total2899780

Visitor Info

  • IP: 3.22.242.141
  • Browser: Unknown
  • Browser Version:
  • Operating System: Unknown

Who Is Online

3
Online

poniedziałek, 29 kwiecień 2024 07:21

Migracja użytkowników

Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 
Migracja passwd, shadow, group, gshadow na nowy komputer Drukuj Email

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ść:

 

/etc/passwd Lista użytkowników, ich UID, katalog domowy, shell
/etc/shadow Lista użytkowników wraz z hasłami
/etc/group Lista grup i ich GID
/etc/gshadow Lista grup wraz z hasłami
/var/spool/mail Poczta użytkowników w postaci mbox
/home Katalogi domowe użytkowników ew. z mailami w formacie Maildir

 

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

Search