GNU/Linux >> Linux Esercitazione >  >> Linux

Come salvare la cronologia dei comandi di utenti selezionati in Linux

Un comando molto potente e interessante in Bash è la storia. In poche parole, per impostazione predefinita, Bash memorizzerà una cronologia di tutti i comandi digitati. Il valore della variabile HISTSIZE determina il numero di eventi conservati nell'elenco della cronologia durante una sessione. Sebbene il valore predefinito per HISTSIZE sia 500, potresti voler impostarlo su un valore più conveniente, come 10000. Quando esci dalla shell, i comandi eseguiti più di recente vengono salvati nel file fornito dalla variabile HISTFILE (l'impostazione predefinita è .bash_history nella tua home directory). Questo post descrive i passaggi per salvare la cronologia dei comandi di un utente specifico in Linux.

1. Creare un nuovo monitor di gruppo. Aggiungi utenti deve essere monitorato come gruppo secondario.

# groupadd monitor
# usermod -a -G monitor [user] 

Ad esempio:

# usermod -a -G monitor opc
# id opc
uid=1000(opc) gid=1000(opc) groups=1000(opc),1002(admins),1003(monitor) 

2. Creare la directory /var/log/shelllogs in cui verrà salvata la cronologia della shell.

# mkdir /var/log/shelllogs
# chown root:monitor /var/log/shelllogs
# chmod 770 /var/log/shelllogs
# chmod +t /var/log/shelllogs

3. Crea uno script in /etc/profile.d con il formato della cronologia ottimizzato in modo che venga esportato ogni volta che l'utente accede.

# cat /etc/profile.d/history.sh
export HISTSIZE=10000
export HISTTIMEFORMAT='%F %T '
export HISTFILE=/var/log/shelllogs/$(who am i | awk '{print $1}';exit)-as-$(whoami)-$(date +%F-%T)
export PROMPT_COMMAND='history -a'

4. Modifica /etc/bashrc e aggiungi la riga successiva entro la fine del file.

test "$(ps -ocommand= -p $PPID | awk '{print $1}')" == 'script' || (script -f /var/log/shelllogs/$(who am i | awk '{print $1}';exit)-as-$(whoami)-$(date +%F-%T)_console.log)

Accedi allo stesso server tramite un'altra sessione ssh/putty per assicurarti che i file vengano creati.


Linux
  1. Come salvare l'output dei comandi in un file in Linux

  2. Come cancellare la cronologia della riga di comando BASH in Linux

  3. Come cancellare la cronologia di Bash su Linux

  4. Come usare il comando Su in Linux

  5. Come cancellare un comando specifico dalla cronologia di Bash in Linux

Come salvare l'output dei comandi di Linux in un'immagine o in un file di testo

Come abilitare il timestamp nella cronologia di Bash in Linux

Come rimuovere un comando dalla cronologia in Linux

Come controllare la cronologia dei comandi di Linux in base alle date

Come elencare utenti e gruppi su Linux

Come elencare tutti gli utenti di un gruppo in Linux