Trzeba pamiêtaæ, że Linux różni siê od MS-DOS jeśli chodzi o kasowanie plików. W MS-DOS (jak i w Windows 95), dosyæ łatwo jest odzyskaæ skasowane pliki - `system operacyjny' (używam tego terminu dosyæ swobodnie) dostarcza nawet narzêdzi, które automatyzują ten proces. W Linux-ie jest inaczej.
Reguła numer jeden (podstawowa wskazówka) brzmi:
RÓB KOPIE ZAPASOWE
bez wzglêdu na wszystko. Pomyśl o wszystkich swoich danych. Byæ może, jak ja, trzymasz kilkuletni zbiór listów, kontaktów, programów, dokumentów na swoim komputerze. Pomyśl co by siê stało z Twoim życiem, gdyby Twój dysk uległ katastrofalnemu uszkodzeniu, lub gdyby -- o wielkie nieba ! -- złośliwy craker wyczyścił Twój dysk. To nie jest niemożliwe; korespondowałem z wieloma ludźmi w takiej sytuacji. Myślê, że teraz wszyscy rozsądnie myślący użytkownicy Linux-a wyjdą, kupią urządzenie do robienia kopii zapasowych, opracują kalendarz archiwizacji i bêdą siê jego trzymaæ. Ja używam wolnego dysku twardego w innym komputerze i okresowo kopiujê tam przez sieæ ethernet mój katalog domowy. Wiêcej informacji o planowaniu kalendarza archiwizacji znajdziesz u Frischa (1995) (patrz rozdział Bibliografia i Wyrazy Uznania).
Co wtedy, gdy nie ma kopii zapasowej? (lub nawet przy istnieniu kopii zapasowej: żadne środki bezpieczeñstwa nie są złym rozwiązaniem w miejscu gdzie przechowywane są ważne dane).
Spróbuj ustawiæ prawa dostêpu do ważnych plików na 440 (lub mniej):
odebranie sobie samemu praw zapisu oznacza, że rm bêdzie wymagał
potwierdzenia przed skasowaniem. (Zauważyłem, że jeśli rekursywnie kasujê
katalog rm -r, prośba potwierdzenia pojawi siê przy pierwszym i drugim
pliku, potem program zachowuje siê jak rm -rf).
Niezłą sztuczką dla wybranych plików jest utworzenie w ukrytym katalogu
twardych dowiązañ do nich. Kiedyś usłyszałem historiê o administatorze,
który przez pomyłkê skasował /etc/passwd (nieomal w ten sposób
niszcząc system).
Jednym z rozwiązañ takiego kłopotu jest zrobienie czegoś nastêpującego (jako
root):
# mkdir /.backup
# ln /etc/passwd /.backup
Teraz skasowanie pliku wymaga wiêkszego wysiłku: gdy napiszesz tylko
# rm /etc/passwd
wtedy
# ln /.backup/passwd /etc
odtworzy Twój plik. Oczywiście, to rozwiązanie nie pomoże jeśli nadpiszesz plik, wiêc nie zapomninaj o kopii zapasowej.
W systemie plików ext2 jest możliwe użycie atrybutów ext2, aby ochraniaæ
pliki. Atrybuty te mogą byæ zmieniane za pomocą komendy chattr.
Istnieje atrybut `append-only`: plik z tym atrybutem może byæ tylko
powiêkszany, nie może byæ skasowany i istniejąca zawartośæ nie może byæ
nadpisana. Jeśli atrybut ten ma katalog, każdy plik czy katalog w nim leżący
może byæ normalnie modyfikowany, ale żaden z plików nie może zostaæ skasowany.
Atrybut `append-only' ustawia siê poleceniem
$ chattr +a FILE...
Istnieje również atrybut `immutable', który może byæ zapalany lub gaszony tylko przez administratora. Pliku lub katalogu z tym atrybutem nie można zmienieniæ, skasowaæ, zmieniæ jego nazwy, czy utworzyæ do niego twardego dowiązania. Można go ustawiæ w nastêpujący sposób:
# chattr +i FILE...
Ext2fs dostarcza również atrybutu `undeletable' (+u in chattr).
Założenie było takie, że plik z tym atrybutem po skasowaniu zostaje
przeniesiony w bezpieczne miejsce `safe location', aby rzeczywiste
skasowanie przesunąæ w czasie. Niestety funkcja ta nie jest jeszcze
zaimplementowana w jądrze. Myślałem, że bêdzie wiêksze zainteresowanie nią
i stanie siê to szybko, ale nie jest ona dostêpna (według mojej wiedzy) w
żadnej aktualnej wersji jądra.
Niektórzy radzą, aby zrobiæ alias lub funkcjê w powłoce rm, która
wykonywałaby rm -i (bêdziesz musiał potwierdziæ skasowanie
każdego pliku).
Dystrubucja Red Hat robi to domyślnie dla wszystkich użytkowników, w tym i dla root-a.
Ja osobiście nie lubiê oprogramowania, które nie może działaæ bez mojej
pomocy, dlatego nie używam tego sposobu. Wcześniej, czy później może pojawiæ
siê kolejny problem: kiedy bêdziesz pracował w trybie singe-user, lub
bêdziesz używał innej powłoki lub nawet innej maszyny, gdzie Twoja funkcja
rm nie istnieje. Jeśli bêdziesz spodziewał siê, że każde skasowanie
wymaga potwierdzenia, dosyæ łatwo jest nie przewidzieæ tego, że kazałeś
skasowaæ zbyt wiele plików. Również skrypty i programy, które podmieniają
rm mogą byæ bardzo niebezpieczne.
Trochê lepszym rozwiązaniem jest użycie pakietu, który umożliwia
`odtwarzalne' kasowanie poprzez specjalną komendê zastêpująca rm.
Szczegóły znajdziesz u Peeka (1993) (patrz rozdział
Bibliografia i Wyrazy Uznania). Jednak w ten
sposób przyzwyczajamy użytkownika do pewniej nonszalancji przy kasowaniu
plików. Nie jest to najlepsze, bowiem system typu Unix wymaga jednak uważnego
działania.