Existuje nějaký způsob, jak v unixu zjistit, kdo přistupoval k určitému souboru za poslední 1 týden? Může to být uživatel nebo nějaký skript ftp na jiné místo. Mohu získat seznam uživatelských jmen, kteří přistupovali k určitému souboru? Jak zjistím, kdo má přístup ke konkrétnímu souboru??
Přijatá odpověď:
Pokud nemáte zavedené extrémně neobvyklé zásady protokolování, kdo přistupoval k jakému souboru, není protokolován (to by bylo obrovské množství informací). Kdo byl v kterou dobu přihlášen, zjistíte v systémových protokolech; last
příkaz vám poskytne historii přihlášení a další protokoly, jako je /var/log/auth.log
vám řekne, jak se uživatelé autentizovali a odkud se přihlásili (který terminál nebo který hostitel, pokud je vzdálený).
Datum, kdy byl soubor naposledy přečten, se nazývá jeho přístupový čas nebo zkráceně atime. Všechny unixové souborové systémy jej mohou ukládat, ale mnoho systémů jej nezaznamenává, protože má (obvykle malý) výkon. ls -ltu /path/to/file
nebo stat /path/to/file
zobrazuje čas přístupu k souboru.
Pokud uživatel přistupoval k souboru a nesnažil se skrýt své stopy, jeho historie shellu (např. ~/.bash_history
) může mít stopy.
Chcete-li zjistit, co nebo kdo má nyní soubor otevřený, použijte lsof /path/to/file
.
Chcete-li zaznamenat, co se stane se souborem v budoucnu, existuje několik způsobů:
-
Použijte inotifywait.
inotifywait -me access /path/to
vypíše řádek/path/to/ ACCESS file
když někdo čtefile
. Toto rozhraní vám neřekne, kdo k souboru přistupoval; můžete zavolatlsof /path/to/file
jakmile se objeví tento řádek, ale existuje sporná podmínka (přístup může být ukončen, než se lsof spustí). -
LoggedFS je stohovatelný souborový systém, který poskytuje pohled na strom souborového systému a může provádět lepší protokolování všech přístupů prostřednictvím tohoto pohledu. Chcete-li jej nakonfigurovat, přečtěte si část Syntaxe konfiguračního souboru LoggedFS.
-
Auditní subsystém Linuxu můžete použít k protokolování velkého množství věcí, včetně přístupů k souborovému systému. Ujistěte se, že
auditd
démon se spustí a poté pomocíauditctl
nakonfigurujte, co chcete protokolovat . Každá protokolovaná operace je zaznamenána v/var/log/audit/audit.log
(na typických distribucích). Zahájení sledování konkrétního souboru:auditctl -w /path/to/file
Pokud vložíte hodinky do adresáře, budou rekurzivně sledovány také soubory v něm a jeho podadresáře.