NFsec Logo

Bezpieczne wyszukiwanie pliku w systemie

07/07/2009 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 91, ilość słów: 485)

W

systemie Slackware znajduje się pakiet slocate (Secure Locate – sekcja A/), który umożliwia wyszukiwanie dowolnej nazwy pliku w okresowo aktualizowanej bazie danych. W dodatku przed wyświetleniem wyników program sprawdza właściciela oraz dostęp do danego pliku, by użytkownicy nie mający do nich żadnych praw nie otrzymali informacji na temat ich lokalizacji.

Wyszukiwanie odbywa się w bardzo prosty sposób:

Dla każdego z podanych wzorców slocate przeszukuje jedną lub więcej baz danych zawierających nazwy plików i wyświetla te nazwy, które zawierają wzorzec. Wzorce mogą zawierać metaznaki (znaki uogólniające / specjalne), takie jak używane w powłoce: `*’, `?’ i `[]’. Metaznaki nie traktują specjalnie `/’ ani `.’. Zatem, do wzorca `foo*bar’ może być dopasowana do nazwa pliku zawierająca `foo3/bar’, zaś do wzorca `*duck*’ nazwa zawierająca `lake/.ducky’. Wzorce posiadające znaki uogólniające powinny być cytowane, by uchronić je przed rozwinięciem przez powłokę. Jeżeli wzorzec jest zwykłym łańcuchem tekstowym — nie zawiera metaznaków — to slocate wyświetla wszystkie nazwy plików z bazy zawierające ten łańcuch w dowolnym miejscu. Jeżeli wzorzec zawiera metaznaki, to slocate wyświetla tylko te nazwy plików, które dokładnie pasują do wzorca. Na skutek tego, wzorce zawierające metaznaki powinny zwykle rozpoczynać się od `*’, a najczęściej również kończyć się tym znakiem. Wyjątkami są wzorce celowo dosłownie dopasowujące początek bądź koniec nazwy pliku. Bazy danych z nazwami plików zawierają listy plików istniejących w systemie w momencie ostatniej aktualizacji baz. Administrator systemu może wybrać nazwę pliku bazy domyślnej, częstość, z jaką bazy są aktualizowane oraz katalogi, dla których zawierają one zapisy.

Przykład zastosowania:

bash-3.1$ slocate xorg.conf
/usr/man/man5/xorg.conf.5.gz
/usr/etc/X11/xorg.conf
/etc/X11/xorg.conf
/etc/X11/xsm/xorg.conf

Baza danych programu znajduje w /var/lib/slocate. Uaktualniana jest poleceniem updatedb, a plik konfiguracyjny zawierający m.in. katalogi, które mają zostać pominięte w procesie indeksowania plików znajduje się w /etc/updatedb.conf. W Slackware baza plików uaktualniana jest raz dziennie dzięki umieszczeniu pliku slocate o odpowiedniej zawartości w katalogu /etc/cron.daily.

Bazy danych nazw plików zawierają listy plików istniejących w szczególnych drzewach katalogów w momencie ostatniej aktualizacji baz. Nazwa pliku bazy domyślnej określana jest w trakcie konfiguracji i instalacji slocate i updatedb. Częstość, z jaką aktualizowane są bazy, oraz katalogi, dla których zawierają zapisy, zależą od tego, jak często i z jakimi argumentami uruchamiane jest updatedb. W środowiskach sieciowych często sensowne jest tworzenie bazy na korzeniu każdego z systemów plików, zawierającej wpisy dla tego systemu. Następnie dla każdego systemu plików updatedb uruchamiane jest na tym serwerze, dla którego jest on położony dysku lokalnym. Zapobiega to zaśmiecaniu sieci. Użytkownicy mogą wybrać bazy, które przeszukuje slocate, posługując się zmienną środowiskową lub opcją wiersza poleceń. Bazy danych nie mogą być łączone (sklejane).

To małe narzędzie daje bardzo wiele możliwości tworzenia różnych baz danych dla różnych grup użytkowników na temat lokalizacji plików w dodatku oferując bardzo szybkie wyświetlanie wyników, a co najważniejsze uwzględnia od razu kwestie bezpieczeństwa dostępu.

Więcej informacji: slocate.trakker.ca, man slocate, man updatedb

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , ,

Komentowanie tego wpisu jest zablokowane.