GNU/Linux >> Tutoriels Linux >  >> Linux

Comment enregistrer l'historique des commandes des utilisateurs sélectionnés sous Linux

Une commande très puissante et cool dans Bash est l'histoire. En termes simples, par défaut, Bash stockera un historique de toutes les commandes que vous tapez. La valeur de la variable HISTSIZE détermine le nombre d'événements conservés dans l'historique au cours d'une session. Bien que la valeur par défaut de HISTSIZE soit 500, vous souhaiterez peut-être la définir sur une valeur plus pratique, telle que 10000. Lorsque vous quittez le shell, les commandes les plus récemment exécutées sont enregistrées dans le fichier fourni par la variable HISTFILE (la valeur par défaut est .bash_history dans votre répertoire personnel). Cet article décrit les étapes pour enregistrer l'historique des commandes d'un utilisateur spécifique sous Linux.

1. Créez un nouveau moniteur de groupe. Ajouter des utilisateurs doit être surveillé en tant que groupe secondaire.

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

Par exemple :

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

2. Créez le répertoire /var/log/shelllogs où l'historique du shell sera sauvegardé.

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

3. Créez un script dans /etc/profile.d avec un format d'historique modifié afin qu'il soit exporté à chaque connexion de l'utilisateur.

# 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. Modifiez /etc/bashrc et ajoutez la ligne suivante à la fin du fichier.

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)

Connectez-vous au même serveur via une autre session ssh/putty pour vous assurer que les fichiers sont en cours de création.


Linux
  1. Comment utiliser la commande history sous Linux

  2. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  3. Comment effacer l'historique de la ligne de commande BASH sous Linux

  4. Comment effacer l'historique de Bash sous Linux

  5. Comment effacer une commande spécifique de l'historique Bash sous Linux

Comment enregistrer la sortie de la commande Linux dans une image ou un fichier texte

Comment activer l'horodatage dans l'historique de Bash sous Linux

Comment supprimer une commande de l'historique sous Linux

Comment vérifier l'historique des commandes Linux par dates

Comment répertorier les utilisateurs et les groupes sous Linux

Comment lister tous les utilisateurs d'un groupe sous Linux