rsync + SFTP - jogosultságok megőrzése

Fórumok

Üdv!

Adott egy gép, amin eddig a backup gyakorlatilag a fontos könyvtárak "össze tar-olása"(tar.bz2) volt. Szeretném a backupolást a jövőben az rsync-re bízni, mivel ez a sávszélesség tekintetében gazdaságosabb lenne. Egyedüli problémám a jogosultságok megőrzésénél adódik. Arra gondoltam, hogy valahogy így fogom használni:


rsync -az /minden/ami/fontos/ backup@tavoli-gep.hu:/home/backup/

Ez szép és jó is, de a jogosultságokat és tulajdonosokat így képtelenség megőrizni, mivel nem root-ként csatlakozok a remote géphez. A fordított felállás, tehát, hogy a tavoli-gep.hu csatlakozzon a menteni kívánt géphez megint nem jó, mert root nélkül jó néhány dologhoz nem fér hozzá.

A kérdésem tehát: Hogyan szokás ezt a problémát áthidalni biztonságosan? (root-ként nem szívesen loginolnék a tavoli-gep.hu-ra)

u.i.: Nem ragaszkodok az SFTP-hez, vevő vagyok bármi másra is...

Hozzászólások

-a vagy -p kapcsolóval megőrzi a jogosultságokat, nem?

Sima -a nálam néha összekavarta az UID/GID-et az adott rendszer passwd/group fájlja alapján, ezért évek óta --numeric-ids opcióval mentek.
Természetesen ehhez is root jog kell, de garantáltan nem kutyolódik össze semmi.

Pl. mysql egyik rendszeren 60, másikon 80-as uid. A célrendszeren is mysql-nek adja a fájlt, nem számít, hogy az 80-as uid. Na ere jó a --numeric-ids

Csak egy ötletet mondanék, szerintem nem túl nehéz megoldani.

Mi van akkor ha a mentendő gépen rsync-el ellenőrzöd a változásokat, ezt betarolod, átküldöd a cél gépre, ott kitarolod és rsyn-cel áttöltöd a cél dir-be?? :)

En azt mondom, egy without-password -os root nagy kart nem tud okozni, hacsak nem hagyod el a privat ssh kulcsodat - ez esetben meg hulyeseg ellen nem ved semmi.

Illetve kevesse ismert funkcio az sshd-ben, hogy az allowusers-ben meg lehet adni, hogy az adott user honnet csatlakozhat. Tehat ha azt mondom, hogy root@10.0.0.11 akkor az azt jelenti, hogy a 10.0.0.11-rol fogadjuk csak el a root usert.

En egyebkent duplicity-t hasznalok, ez megorzi a jogokat, mert tar fajlba csomagol, viszont lehet vele sftp-re menteni.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

A without-password -os root azért jó ebben az esetben, mert ha véletlen megtörik azt a szervert amit backupolsz, akkor buktad vele együtt a backup szerveredet is teljes egészében.
Viszont ha backupolandó szerverenként van egy külön user a backup szerveren megfelelő opciókkal az authorized_keys-ben, akkor csak az ahhoz szerverhez tartozó backuphoz férnek hozzá jó esetben.
Nyilván, ha backup scripthez tartozó bejegyzés az authorized_keys-ben megfelelően van paraméterezve az enyhíthet a dolgon, de ha nem muszáj akkor minek.
Ja és ezen az allowusers-nél a host megadása sem sokat javít.

♲♻♲

Ha megtorik a szervert es eljutnak a rootig, az csak az egyik problemad lesz, hogy a backup szerver is megy vele. Megy ott tobb minden mas is.

Egyebkent pedig nyilvan, ahol ilyen jellegu megfontolasok vannak, ott nem szabad engedni a root-ot loginolni - de el is lehet felejteni minden rsync alapu backupot, es valami tomoritett formatumuba lehet gondolkodni.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Köszönöm a tippeket mindenkinek! A végső megoldás az lett, hogy rsync előtt a backupolni kívánt gépen csinálok egy sql dumpot és egy listát a fájlok jogosultságairól, tulajdonosairól. A fentebb ajánlott perl szkripteket átírtam sh-ra, de lényegében ugyan az. Utána megy a passwordless SFTP rsync-elés.

A célgépre is van egyébként root-om, de így a legegyszerűbb a dolog talán. Később még biztosan reszelek rajta, de egynek már jó! :)

Backup előtt ls -lR > ls-lR. Ez elterjedt volt 2 évtizede az FTP szervereken. Aztán jól elfelejtettük.

Mondjuk ennél egy

find . -ls

vagy egy

find . -print0 -ls

-nek egy fokkal feldolgozhatóbb kimenete van.
Feltéve persze ha vissza is akarjuk még állítani azokat a jogosultságokat.

Szerk.:
Talán itt még vannak korrektebb megoldások is:
http://stackoverflow.com/questions/3450250/is-it-possible-to-create-a-s…
http://www.unix.com/shell-programming-scripting/42750-shell-script-save…

♲♻♲

man rsync:
--fake-super store/recover privileged attrs using xattrs

Van benne egy bővebb leírás is lentebb...

♲♻♲

sub
--
"'The time has come,' the Walrus said"