INFORMATICS

The Best

Przełącznik języka

BUY COFFEE

If you like the website and want to support the project!

Postaw mi kawę na buycoffee.to

This Site

CMS

Hardware

Uncategorised

useful sites

Databases

Emulators

Powershell

Storage Array

DNS

FORTINET

Antivirus program

Licznik

2.png8.png7.png7.png7.png3.png2.png
Today538
Yesterday779
This week3915
This month18330
Total2877732

Visitor Info

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

Who Is Online

6
Online

Thursday, 28 March 2024 14:14

Migracja użytkowników

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 
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