Fórum Root.cz

Hlavní témata => Software => Téma založeno: x x 05. 06. 2024, 19:11:50

Název: Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: x x 05. 06. 2024, 19:11:50
Potřeboval bych radu jak snadno zjistit jaké soubory vytváří či otevírá spouštěná aplikace. Mělo by mi stačit ke spokojenosti jen co se odehrává v podadresářích domovského účtu. Poradíte někdo jak to udělat??
Název: Re:zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Logik 05. 06. 2024, 19:36:08
Na Linuxu hledáš strace.
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Vantomas 05. 06. 2024, 20:41:22
Používám na to iwatch, co používá inotify. V Debianu je to v balíčku iwatch https://packages.debian.org/bookworm/iwatch (https://packages.debian.org/bookworm/iwatch)

Příklad, rekurzivně projede všechny soubory v aktuálním adresáři a zobrazuje všechny eventy nad soubory. Pokud je toho ve výpisu dost, tak --help a eventy nebo sledované soubory/adresáře vybrat podle zájmu.
Kód: [Vybrat]
iwatch -e all_events -r ./
Edit: Aha, teď koukám, že je požadavek na "co dělá spouštěná aplikace"... Tam je opravdu vhodný nástroj strace. iwatch je vhodný nástroj pro "k jakým souborům se přístupuje/čte/zapisuje v nějakém adresáři".
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: z_sk 05. 06. 2024, 22:11:07
inotify
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Exceptions 05. 06. 2024, 22:28:29
nepíšeš distribuci a ani filesystem. Kromě rad výše mrkni i na auditd, pokud ho máš.
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Martin12 05. 06. 2024, 22:36:39
Ono by mohlo stačit sledovat /proc/PID/... a tam by měli být filedescriptory otvíraných souborů
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Exceptions 06. 06. 2024, 09:26:02
Ono by mohlo stačit sledovat /proc/PID/... a tam by měli být filedescriptory otvíraných souborů

to dělá spousta monitorovacích nástrojů (vč. lsof), ale je to pořád snapshot v čase, když je zápis velmi rychlý a soubor se po zápisu zavře, nemusíš nic spozorovat. To je právě i problém ochrany před viry/malwery či jak to nazvat. Na to jsou lepší tracovací či injectovací nástroje na úrovni kernelu.

Pak tady máme samozřejmě celou řadu jiných cest, jak zapsat data bez syscallu a viditelnosti konkrétní cesty.

Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: x x 06. 06. 2024, 11:42:08
Děkuji za náměty jak na to. Jinak distribucí je Ubuntu v předposlední LTS verzi, filesystem ext4.
Jinak zcela určitě ten přístup či vytvoření souboru bude velmi rychlý.
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Jan Fikar 06. 06. 2024, 12:42:46
takže asi strace, ale dělá to hodně výstupu, zase tam bude všechno
Název: Re:Zjištění otevíraných nebo vytvářených souborů
Přispěvatel: Michal Šmucr 06. 06. 2024, 14:56:57
Jak už zmiňovali ostatní, tak nejjednodušší jsou asi nástroje z inotify-tools (fsnotifywatch, inotifywatch..). Případně strace, což je obecnější nástroj na monitorování různých syscallů. Obojí je fajn, pokud chcete dělat jen ad-hoc interaktvní monitoring.

Jestli jde o nějaké dlouhodobější sledování, tak je na to vhodnější použít auditd. Ten se obecně hodí pro monitorování jak třeba filesystému, tak i síťových spojení atp. Na některých distribucích je rovnou v základní instalaci, do Ubuntu se, mysím, přidá instalací balíčku auditd, jestli je to stejné jak na Debianu.
Běží to jako služba a můžete vytvořit docela mocná pravidla na monitoring. Jak persistentní do nějakého .rules souboru, tak i ad-hoc interaktivní přes auditctl.
Nějaké intro je pak třeba tady:
https://www.linux.com/topic/desktop/customized-file-monitoring-auditd/