Systémové soubory na serveru jsou často cílem neautorizovaných změn, které mohou mít za následek zranitelnost systému nebo jeho nestabilitu. Pro administrátory systémů je tedy klíčové mít možnost sledovat změny v těchto souborech a reagovat na ně včas. Jedním z nástrojů, který to umožňuje na operačním systému CentOS 7, je inotify, specifická implementace Linux Kernelu pro monitorování souborového systému.
Předpoklady
Než začnete, ujistěte se, že máte:
- Přístup k serveru s CentOS 7 s právy root nebo uživatelem s sudo oprávněním.
- Nainstalované základní vývojářské nástroje (Development Tools).
Instalace potřebných balíčků
Prvním krokem je instalace inotify-tools, které obsahují nástroje pro práci s inotify. Pro instalaci spusťte následující příkaz v terminálu:
sudo yum install inotify-tools
Konfigurace inotify
inotify pracuje na úrovni jádra, což znamená, že je extrémně efektivní z hlediska výkonu. Nicméně, ve výchozím nastavení má limit na počet sledovatelných souborů, který může být příliš nízký pro některé aplikace. Pro zvýšení tohoto limitu otevřete soubor /etc/sysctl.conf
a přidejte následující řádky:
fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=256
Po přidání řádků aplikujte změny příkazem:
sudo sysctl -p
Použití inotify
Základní použití inotify je sledování změn v souborech nebo adresářích. Pro začátek si vytvoříme skript monitor.sh
, který bude sledovat změny v určitém adresáři a jeho podadresářích. Otevřete nový soubor pomocí oblíbeného textového editoru a vložte následující skript:
#!/bin/bash
DIRECTORY_TO_MONITOR="/var/www/HTML"
EVENTS="create,delete,modify,move"
inotifywait -m -r -e "$EVENTS" --format '%w%f %e %T' --timefmt '%Y-%m-%d %H:%M:%S' "$DIRECTORY_TO_MONITOR" | while read FILE
do
echo "Detected $FILE"
# Zde můžete přidat další akce, např. zaslání upozornění e-mailem
done
Udělejte skript spustitelným příkazem:
chmod +x monitor.sh
A spusťte ho:
./monitor.sh
Skript nyní bude v reálném čase sledovat vytváření, mazání, úpravy a přesuny souborů v zadaném adresáři a vypíše informace o každé detekované události.
Automatizace a další kroky
Pro dlouhodobé monitorování můžete skript spustit na pozadí nebo použít systém jako systemd
nebo cron
pro jeho automatické spouštění po restartu systému.
inotify nabízí mnoho možností konfigurace a použití. Můžete například sledovat specifické typy souborů, vyloučit určité adresáře z monitorování nebo upravit akce vykonávané po detekci změn. Pro detailnější informace o inotify a jeho možnostech doporučuji prostudovat oficiální dokumentaci a příklady použití.