Vista viva dei comandi di shell Linux eseguiti da un altro utente?

È ansible che l'utente root in Linux disponga di una visualizzazione in tempo reale (o quasi in tempo reale) dei comandi di shell eseguiti da un altro utente connesso tramite un terminal o SSH? Ovviamente sono memorizzati in .bash_history, ma questo viene salvato solo quando l'utente si disconnette e può essere distriggersto.

Modifica: idealmente qualcosa che può essere facilmente acceso e spento.

  • Le migliori pratiche per i server Linux di provisioning sottili (su VMware)
  • Linux dice che il mio spazio è pieno con 2,4 / 50gb utilizzati
  • / proc / pid / environ variables mancanti
  • Strumento per assistere i server di caricamento in un rack?
  • informazioni su / proc / pid / sched
  • FreeIPA nei contenitori LXD / LXC - non può cambiare utente
  • Come modificare l'affinità SMP di un IRQ su Ubuntu PV domU all'interno di Xen XCP?
  • sa2 -A / var / log / sa / sa13: Nessun file o directory del genere
  • C'è un catrame più intelligente o cpio là fuori per recuperare efficientemente un file archiviato nell'archivio?
  • amersand all'inizio di una linea in csh
  • Mancanza di CPU Core in Net-SNMP
  • Rileva ciò che causa il ritardo tra l'immissione di un nome di dominio e il carico della pagina
  • 10 Solutions collect form web for “Vista viva dei comandi di shell Linux eseguiti da un altro utente?”

    come root, è ansible sostituire la loro shell con un semplice wrapper script che ha registrato i loro comandi prima di passarli alla copertina reale. Questo functionrebbe solo prima di entrare.

    Utilizza sniffy se si desidera entrare nella session o nella screen -x dell'utente screen -x se si dispone di una collaborazione.

    Sappiate, tuttavia, che la spiegazione dei tuoi utenti potrebbe essere soggetta a regolamenti o addirittura illegali, a seconda della legislazione locale.

    Cambiare la shell è molto banale per aggirare, patch la shell stessa è meglio, ma devi patch tutte le conchiglie. Il nostro cracker preferito usa questo, come un bonus non si preoccupa di distriggersre bash_history.

     ssh host /bin/sh -i 

    Snoopy è un wrapper attorno alle funzioni di esecuzione e registra qualsiasi binario esterno eseguito (non builtins)

    @ La suggestione di David Schmitt usa un metodo migliore, tocca lo pseudoterminal.

    ttysnoop utilizza lo stesso metodo, ma non è mantenuto. (Probabilmente ho avuto problemi che lo fanno colbind le connessioni di ssh, non riesco a ricordare)

    È ansible provare a patchare ssh per registrare una session, ma quella patch è vecchia .

    pseudopod e rootsh possono essere utilizzati per registrare legali sudos. E shwatcr è un'altra cosa per controllare gli accessi.

    Se stai collaborando, puoi utilizzare la schermata GNU tra due utenti: avere uno stabilire la session di schermo, quindi associare l'altro con la screen -x .

    Se si desidera che la radice "spia" su altri utenti senza la loro conoscenza, la soluzione migliore e più efficiente potrebbe essere software / hardware keylogger.

    Sysdig è un potente strumento di esplorazione a livello di sistema – questo è ciò che vuoi;)

    esempio:

    sysdig -i spy_users

    Categoria: Sicurezza

    spy_users Mostra l'attività intertriggers dell'utente

    elenca tutti i comandi che gli utenti lanciano in modo interattivo (ad esempio da bash) e each visitatore di directory visitano

    Potresti provare la patch bash-BOFH. Cerca intorno alla patch.

    Ho scritto un metodo per registrare tutti i comandi / build di 'bash' in un file di text o un server 'syslog' senza utilizzare una patch o uno speciale strumento eseguibile.

    È molto facile da distribuire, in quanto è un semplice shell che deve essere richiamato una volta all'initialization del bash.

    Vedere il metodo qui: http://blog.pointsoftware.ch/index.php/howto-bash-audit-command-logger

     function spy() { ptsnum=`ps awfux | grep pt[s]\/"$1" | awk '/bas[h]/{print $2}'` ; /usr/bin/strace -s 1000 -t -f -p $ptsnum 2>&1 3>&1 \ | grep -Poi 'write\(...\"[[:print:]]{1,2}\"[.][.][.][,]..\)' ; } [436] klikevil@epiphany ~ $ w<br> 09:36:43 up 12:06, 6 users, load average: 0.46, 0.29, 0.20<br> USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT<br> klikevil pts/0 75.125.126.8 23:05 2:19m 10:33 0.18s cmd <br> klikevil pts/1 75.125.126.8 00:18 6:50m 0.06s 0.04s sshd: klikevil [priv]<br> klikevil tty7 :0 09:02 17:07m 2:02 0.32s x-session-manager<br> klikevil pts/2 :0.0 09:03 3:30 0.08s 0.08s bash<br> klikevil pts/3 :0.0 09:03 0.00s 0.76s 0.00s w<br> klikevil pts/4 :0.0 09:06 3:13 0.46s 0.00s /bin/sh /usr/bin/thunder<br> [437] klikevil@epiphany ~ $ spy 2<br> write(2, "e"..., 1)<br> write(2, "c"..., 1)<br> write(2, "h"..., 1)<br> write(2, "o"..., 1)<br> write(2, " "..., 1)<br> write(2, "s"..., 1)<br> write(2, "u"..., 1)<br> write(2, "p"..., 1)<br> write(2, " "..., 1)<br> write(2, "d"..., 1)<br> write(2, "o"..., 1)<br> write(2, "g"..., 1)<br> write(2, "\n"..., 1)<br> ^C<br> 

    Sembra funzionare abbastanza bene se non ti dispiace di ordinare attraverso un sacco di line break.

    Snoopy è destinato alla logging di command leggera.

    Se si desidera visualizzare in diretta i comandi eseguiti nel sistema, questo può essere. Attenzione: la snoopy non è una soluzione corretta di revisione e può essere facilmente elusione.

    Tuttavia, se si desidera visualizzare tutti i caratteri digitati nel terminal, è necessario utilizzare un altro strumento.

    Disclosure: sono un manutenzione corrente snoopy.

    provare questa esportzione HISTTIMEFORMAT = "% T" eseguire un paio di comandi e "storia" in seguito …

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.