GNU/Linux >> Linux Esercitazione >  >> Linux

Come faccio a registrare ogni comando eseguito da un utente?

Soluzione 1:

Aggiungi questa riga alla tua configurazione pam responsabile degli accessi (la sua autenticazione di sistema su distribuzioni basate su redhat)

session    required     pam_tty_audit.so enable=*

Per scoprire cosa è stato fatto, puoi usare.

ausearch -ts <some_timestamp> -m tty -i

Questo produce un output come questo:

 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>

L'unico svantaggio di questo è che può essere un po' difficile da leggere, ma è molto meglio della maggior parte delle soluzioni proposte poiché in teoria potrebbe essere utilizzato per registrare un'intera sessione, verruche n tutto.

Modifica:Oh e puoi usare aureport per generare un elenco che può essere più utile.

# 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>

Soluzione 2:

La migliore soluzione al tuo problema sarebbe il sistema di controllo integrato di Linux. Usa man 8 auditd oppure controlla questa pagina per maggiori informazioni:http://linux.die.net/man/8/auditd.

Inoltre, puoi dare un'occhiata a questo tutorial:anche se è leggermente al di fuori dell'ambito della tua domanda, mostra come funziona il sistema di controllo.

Soluzione 3:

Potresti usare snoopy.

È una semplice libreria di registrazione dei comandi e non una soluzione di controllo adeguata (facilmente aggirata). Divulgazione:sono l'attuale manutentore snoopy.

Soluzione 4:

Un trucco meno noto, ma sicuramente il più fantastico è semplicemente usare le capacità di controllo integrate di sudo . Sudo viene fornito con un sudoreplay comando che semplifica la riproduzione delle sessioni. Trasmetterà anche vim sessioni (come suggerito).

Ecco come usarlo in pochi semplici passaggi:

  1. Installa sudosh sul tuo sistema; questo è uno shell wrapper attorno al sudo comando che rende un utente sudo stessi (non root ) e può essere utilizzato come shell di login di sistema
  2. Abilita sudo registrazione. Modifica /etc/sudoers.d/sudosh : Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. Aggiungi questo comando a /etc/shells per consentire gli accessi che lo utilizzano: /usr/bin/sudosh

    Suggerimento :per impedire agli utenti di utilizzare altre shell per il login, rimuovi quelle altre shell da /etc/shells .

  4. Aggiorna l'utente foobar per usare il sudosh shell. chsh -s /usr/bin/sudosh foobar

Per informazioni più dettagliate, vedere:https://github.com/cloudposse/sudosh/


Linux
  1. Come registrare ogni comando digitato?

  2. Come registrare ogni comando della shell in Linux

  3. Come limitare i comandi utente in Linux

  4. Come visualizzare la cronologia dei comandi di un altro utente in Linux?

  5. Come consentire all'utente di eseguire un comando contenente virgolette in sudoers?

Come creare un utente Sudo su Debian

Come eliminare un utente su Ubuntu

Come creare un utente Sudo su Ubuntu

Come creare un utente Sudo su CentOS

Come creare un utente Sudo su Debian

Come creare un utente Sudo su CentOS