GNU/Linux >> Znalost Linux >  >> Linux

Jak zaznamenám každý příkaz provedený uživatelem?

Řešení 1:

Přidejte tento řádek do své konfigurace pam zodpovědné za přihlášení (jeho ověření systému v distribucích založených na redhat)

session    required     pam_tty_audit.so enable=*

Chcete-li zjistit, co bylo provedeno, můžete použít.

ausearch -ts <some_timestamp> -m tty -i

To vytvoří výstup podobný tomuto:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

Jedinou nevýhodou toho je, že to může být trochu obtížné číst, ale je to mnohem lepší než většina navrhovaných řešení, protože teoreticky by se dalo použít k záznamu celé relace, bradavic a všech.

Edit:Jo a můžete použít aureport ke generování seznamu, který může být užitečnější.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

Řešení 2:

Nejlepším řešením vašeho problému by byl vestavěný auditní systém Linuxu. Použijte man 8 auditd nebo se podívejte na tuto stránku pro více informací:http://linux.die.net/man/8/auditd.

Můžete si také prohlédnout tento tutoriál – i když je trochu mimo rozsah vaší otázky, ukazuje, jak funguje systém auditu.

Řešení 3:

Můžete použít Snoopy.

Je to jednoduchá knihovna pro protokolování příkazů a není to správné řešení auditu (snadno obejít).

Řešení 4:

Méně známý trik, ale ten nejúžasnější je použít vestavěné funkce auditu sudo . Sudo se dodává s sudoreplay příkaz, který usnadňuje přehrávání relací. Bude dokonce přenášet vim relací (jak navrhujete).

Zde je návod, jak jej používat v několika jednoduchých krocích:

  1. Nainstalujte sudosh na vašem systému; toto je obal kolem sudo příkaz, díky kterému je uživatel sudo sami (nikoli root ) a lze jej použít jako systémový přihlašovací shell
  2. Povolit sudo protokolování. Upravit /etc/sudoers.d/sudosh : Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Přidejte tento příkaz do /etc/shells pro povolení přihlášení pomocí: /usr/bin/sudosh

    Tip :Chcete-li uživatelům zabránit v používání jiných shellů k přihlášení, odeberte tyto ostatní shelly z /etc/shells .

  4. Aktualizujte uživatele foobar použít sudosh shell. chsh -s /usr/bin/sudosh foobar

Podrobnější informace najdete na:https://github.com/cloudposse/sudosh/


Linux
  1. Jak zaznamenáte každý zadaný příkaz?

  2. Jak zjistit, zda má uživatel práva sudo

  3. Jak vytvořit uživatele Sudo v Rocky Linux 8

  1. Jak vytvořit uživatele Sudo v Debianu

  2. Jak omezit uživatelské příkazy v Linuxu

  3. Jak se odhlásím ze `sudo su`?

  1. Jak vytvořit uživatele v Linuxu [Správa uživatelů]

  2. Jak přihlásit každý příkaz zadaný do Bash a každou operaci se souborem?

  3. Jak používat sudo k tomu, aby uživatel bez oprávnění root mohl spustit konkrétní příkaz