Řešení 1:
Řešení 1 :systémové klepnutí
Pomocí systemtap můžete zobrazit všechna PID, která se pokoušejí použít unlink() na inode .bashrc
a .bash_profile
soubory.
Nainstalujte systemtap a symboly ladění pro vaše jádro.
Vytvořte soubor s názvem unlink.stap
s následujícím obsahem:
probe syscall.unlink
{
printf ("%s(%d) unlink (%s) userID(%d)\n", execname(), pid(), argstr, uid())
}
Poté jej spusťte pomocí sudo stap unlink.stap
Řešení 2 :informovat
Můžete také použít inotify, abyste viděli, kdy je soubor smazán.
Řešení 3 :ftrace
Dalším řešením je použít ftrace:
trace-cmd record -e \*unlink\*
Počkejte, až bude soubor smazán, stiskněte CTRL+C pro zastavení trace-cmd record ...
a poté spusťte:
trace-cmd report
Řešení 4 :bpftrace
Nainstalujte bpftrace
a poté spusťte:
bpftrace -e 'tracepoint:syscalls:sys_enter_unlink* { printf("%s %s\n", comm, str(args->pathname)); }'
Řešení 2:
kromě odpovědi micea můžete chattr +i soubory jako root a zjistit, zda něco nezaznamená chybu při pokusu o jejich odstranění.
Řešení 3:
Jste si naprosto jisti, že je sám uživatel (omylem) nemaže?
Měl jsem několik bezradných uživatelů (Windows) se stejným problémem. Ukázalo se, že tyto soubory sami smazali pokaždé, když navštívili svůj domovský adresář pomocí ftp klienta. Všimli si souborů .xxxx (ftp klient je neskryl) a odstranili "nepořádek".
Nikdy mě nenapadlo, že si to udělali sami, dokud si jeden z nich nestěžoval na spontánně se znovu objevující soubory, které před několika dny smazal.
Řešení 4:
K vymazání určitých souborů po odhlášení používáme bash odhlašovací skripty (~/.bash_logout) – můžete zkontrolovat, zda máte toto nastavení, třeba s tlustým prstem v něm.
Řešení 5:
More vypadá jako vetřelec, který vyhledává /home/user -name název_souboru -exec rm -f {} \; po tom všem jeho plížení :). Jen hádám, protože jste zmínil, že se také smažou záložní soubory.