- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah - ·vodnφ strßnka -

LinuxovΘ noviny Duben 1998

Kontrola integrity RPM balφk∙

Jan "Yenya" Kasprzak, 15. ·nora

V p°edchozφ Φßsti tohoto serißlu jsme vid∞li, jakΘ informace systΘm RPM udr╛uje o jednotliv²ch balφcφch a jejich souborech. V minulΘm Φφsle jsme si dokonce ukazovali, jak tyto ·daje ze systΘmu zφskat. V tomto Φφsle bude °eΦ o kontrole integrity balφk∙ - co d∞lat, chceme-li zjistit, jestli soubory, kterΘ se v systΘmu nachßzejφ, majφ v∙bec je╣t∞ n∞jak² vztah k RPM balφku, ze kterΘho byly kdysi nainstalovßny.

Soubory a verifikaΦnφ skripty

K verifikaci RPM balφk∙ slou╛φ p°epφnaΦ -V, resp. -y nebo tΘ╛ --verify p°φkazu rpm. SystΘm RPM umφ kontrolovat jednak integritu soubor∙ p°φslu╣n²ch RPM balφk∙m, a jednak sprßvnost konfigurace. Prvnφ z kontrol se provßdφ oproti RPM databßzi nebo .rpm-balφku samotnΘmu, druhß je provßd∞na pomocφ verifikaΦnφho skriptu, kter² m∙╛e b²t souΦßstφ RPM balφku. Tam si autor balφku m∙╛e sßm napsat cokoli, co zkontroluje nap°φklad syntaxi konfiguraΦnφch soubor∙ (u╛ivatelΘ systΘmu UUCP si jist∞ vzpomenou na program uucheck). Poslednφ v∞cφ, kterou RPM kontroluje, jsou zßvislosti mezi balφky.

Kontrola soubor∙

Nßsledujφcφch dev∞t atribut∙ se m∙╛e u ka╛dΘho souboru v danΘm balφku kontrolovat:

  • vlastnφk souboru
  • skupina souboru
  • p°φstupovß prßva
  • kontrolnφ souΦet (metoda MD5)
  • velikost souboru
  • hlavnφ Φφslo za°φzenφ
  • vedlej╣φ Φφslo za°φzenφ
  • cφl symbolickΘho linku
  • Φas poslednφ modifikace

Ne v╣echny atributy jsou pochopiteln∞ smysluplnΘ u v╣ech soubor∙ - nap°φklad cφl symbolickΘho linku lze z°ejm∞ kontrolovat pouze u soubor∙ typu symbolick² link. TaktΘ╛ hlavnφ a vedlej╣φ Φφslo je platnΘ pouze u specißlnφch soubor∙. Naopak MD5 souΦet je u specißlnφch soubor∙ k niΦemu. Navφc sßm autor balφku mß mo╛nost zakßzat verifikaci urΦitΘho atributu pro konkrΘtnφ soubor. Nap°φklad terminßlovß za°φzenφ m∞nφ svΘho vlastnφka (nikoli v╣ak skupinu) podle toho, kdo je momentßln∞ na danΘm terminßlu p°ihlß╣en. Proto by bylo nemoudrΘ verifikovat vlastnφka takovΘho souboru.

Nesouhlasφ-li hodnota n∞kterΘho atributu ve skuteΦnosti a v databßzi, RPM o tom vypφ╣e zprßvu. Pro ka╛d² zm∞n∞n² soubor je ve v²stupu jeden °ßdek. Na °ßdku je seznam atribut∙, kterΘ nesouhlasφ, p°φpadn∞ pφsmeno c, jde-li o konfiguraΦnφ soubor, a cesta k souboru. Seznam je uveden ve form∞ osmiznakovΘho °et∞zce, kde na mφst∞ zm∞n∞n²ch atribut∙ je pφsmeno, a na mφst∞ nezm∞n∞n²ch nebo neverifikovan²ch atribut∙ je teΦka. V²stup m∙╛e vypadat asi takto:

$ rpm -V bash
.M5....T c /etc/bashrc
Na mφst∞ teΦek mohou b²t tyto atributy (podle po°adφ v seznamu):

  • S - velikost
  • M - p°φstupovß prßva
  • 5 - MD5-souΦet
  • D - hlavnφ a vedlej╣φ Φφslo za°φzenφ
  • U - vlastnφk
  • G - skupina
  • T - Φas poslednφ modifikace
Je vid∞t, ╛e v na╣em p°φkladu byl soubor bashrc modifikovßn. Je zm∞n∞n jeho obsah (MD5 souΦet), Φas modifikace a p°φstupovß prßva. Pokud soubor, kter² se mß verifikovat, v∙bec neexistuje, je mφsto seznamu atribut∙ vypsßno slovo missing. Je-li verifikace balφku ·sp∞╣nß, RPM nevydßvß ╛ßdn² v²stup.

Co se mß kontrolovat?

Jak jsme ji╛ vid∞li v²╣e, staΦφ p°φkazu rpm -V dßt jako parametr seznam balφk∙, kterΘ mß zkontrolovat. Krom∞ toho existujφ tyto dal╣φ mo╛nosti:

  • -a - kontrola v╣ech balφk∙, kterΘ jsou prßv∞ v systΘmu nainstalovßny.
  • -f soubor - kontrola balφku, kterΘmu pat°φ dan² soubor.
  • -p soubor.rpm - provßdφ kontrolu balφku nikoli proti RPM databßzi, ale proti balφku samotnΘmu. Toto se pou╛ije zejmΘna v p°φpad∞, kdy si nejsme ·pln∞ jisti platnostφ RPM databßze nebo kdy╛ databßze v∙bec neexistuje.
  • -g skupina - kontrola v╣ech nainstalovan²ch balφk∙, pat°φcφch do danΘ skupiny (nap°φklad rpm -Vg Shells zkontroluje v╣echny shelly).

Dal╣φ mo╛nosti

Krom∞ v²╣e uveden²ch p°epφnaΦ∙ lze takΘ specifikovat, kterΘ Φßsti verifikaΦnφho procesu se majφ provΘst. JednotlivΘ Φßsti lze vypnout t∞mito volbami:

  • --nodeps - neprovßdφ kontrolu zßvislostφ mezi balφky.
  • --noscripts - nespou╣tφ verifikaΦnφ skript.
  • --nofiles - neprovßdφ kontrolu

Za zmφnku stojφ je╣t∞ p°epφnaΦe -v, resp. -vv, kterΘ zvy╣ujφ podrobnost vypisovan²ch informacφ (nap°φklad zapφnajφ v²pis standardnφho vstupu verifikaΦnφho skriptu, resp. i jednotlivΘ p°φkazy, tφmto skriptem provßd∞nΘ).

Tento dφl na╣eho serißlu o systΘmu RPM uzavφrß prvnφ Φßst zam∞°enou na b∞╛nΘ u╛ivatele. Od p°φ╣t∞ se budeme v∞novat vlastnφ tvorb∞ RPM balφk∙. *


- p°edchozφ Φlßnek - nßsledujφcφ Φlßnek - obsah - ·vodnφ strßnka -