obnova smazaneho (stale otevreneho) souboru

Miroslav Lachman 000.fbsd at quip.cz
Wed Apr 14 14:40:28 CEST 2010


Dan Lukes wrote:
> On 04/14/10 12:58, Miroslav Lachman:
>> Mam celkem strucny dotaz - lze nejak snadno na FreeBSD 7.x obnovit
>> smazany soubor, ktery je stale jeste otevreny nejakym procesem?
>
> Jo. Ze zalohy. Ale ty ho asi potrebujs a tohle jako vtip nejspis
> neocenis. Tak ti nabidnu jine dve moznost - a ty, upozornuju, uz vtip
> nejsou.

Jde tu o analyzu "po pravdepodobnem utoku", takze to bohuzel v zadne 
zaloze neni. Utocnik neco spustil a smazal, to spustene tu stale bezi a 
me zajima, co to je :) (navic je to cele v jailu)

> 1. Postrilis pokud mozno vsechno krome toho procesu, ktery "drzi"
> soubor, pak parkrat zavolas "sync", chvili pockas - a pak stisknes
> tlacitko reset.
>
> Nabootujes a budes doufat, ze fsck obnovi neposkozeny chain do
> "lost_found".
>
> Ovsem, jde o neotestovany postup a pokud to nezabere, tak jsi vis kde.

Na to se mi moc spolehat nechce

> Ten druhy je ovsem jeste silenejsi.
>
> 2. Nastudujes kernelovou funkci kernel_link(), ktera za normalni situace
> vyrabi hardlink. Jako parametry ma zdrojove jmeno a nove jmeno.

[...]

> Ovsem - doporucuju modul napsat a ladit na nejakem jinem stroji, protoze
> tenhle si urcite nechces pokusama polozit. Myslenkove je to ciste a
> jednoduche a navic deterministicky funkcni, ale napsat to trivialni nebude.

Neslo by to jeste nejak jinak? Jakozto neprogramator se do kerneloveho 
modulu poustet ani nebudu.

Zkousel jsem se podivat do manualu, jestli by to neslo pres fsdb, kde 
jsem nasel:

ln ino name
     Create a link to inode ino under the name name in the current
     directory inode.  This command is valid only if the current inode
     is a directory.

ale kdyz jsem zkusil:

fsdb (inum: 2)> ln 480872 nejaky_soubor

tak mi to vratilo

SETTING DIRTY FLAG IN READ_ONLY MODE

UNEXPECTED SOFT UPDATE INCONSISTENCY
SETTING DIRTY FLAG IN READ_ONLY MODE

UNEXPECTED SOFT UPDATE INCONSISTENCY
Ino 480872 entered as `nejaky_soubor'
fsdb: rval was 1

a na filesystemu se "nejaky_soubor" neobjevil

Takze to jsem si taky nepomohl ;(

Mirek


More information about the Users-l mailing list