Maison  >  Article  >  Opération et maintenance  >  Comment utiliser la fonction d'enregistrement des commandes historiques du shell Linux

Comment utiliser la fonction d'enregistrement des commandes historiques du shell Linux

WBOY
WBOYavant
2023-05-12 13:19:181760parcourir

Sous Linux, vous pouvez utiliser la commande history pour afficher toutes les opérations historiques de l'utilisateur. En même temps, les enregistrements des opérations de la commande shell sont enregistrés par défaut dans le fichier .bash_history du répertoire utilisateur. Grâce à ce fichier, vous pouvez interroger l'historique d'exécution des commandes shell, ce qui aide le personnel d'exploitation et de maintenance à effectuer des audits et des dépannages du système. En même temps, après une attaque du serveur par un pirate informatique, vous pouvez également interroger l'historique des opérations de commande des pirates. se connecter au serveur. Cependant, après l'invasion des pirates, afin d'effacer les traces, ils supprimeront le fichier .bash_history. Cela nécessite une sauvegarde raisonnable de ce fichier.

La commande d'historique par défaut ne peut afficher que les enregistrements d'opérations historiques de l'utilisateur, mais elle ne peut pas distinguer l'heure à laquelle chaque utilisateur a exécuté la commande. C'est assez gênant pour le dépannage. La solution est d'ajouter les quatre lignes suivantes au fichier /etc/bashrc pour permettre à la commande history d'enregistrer automatiquement le temps d'exécution de toutes les commandes shell :

Copier le code Le code est le suivant suit :

#🎜 🎜#histfilesize=4000

histsize=4000
histtimeformat='%f %t'
export histtimeformat

histfilesize signifie enregistré dans le fichier .bash_history Le nombre total d'enregistrements de la commande, la valeur par défaut est 1000 ; histsize définit le nombre total d'enregistrements générés par la commande history ; histtimeformat définit le format d'affichage de l'heure, qui est le même que "+ ; "%f %t"" après la commande date ; histtimeformat est utilisé comme historique. La variable time transmet la valeur à la commande history.

Conseils avancés

Bien que celui ci-dessus puisse enregistrer le temps, il ne peut pas être utilisé à des fins d'audit et peut facilement être falsifié ou perdu par les pirates. La méthode suivante enregistre en détail les utilisateurs connectés au système, les adresses IP, les commandes shell et les heures de fonctionnement détaillées. Et enregistrez ces informations sous forme de fichiers dans un endroit sûr pour l'audit et le dépannage du système.

Mettez le code suivant dans le fichier /etc/profile pour réaliser les fonctions ci-dessus.


Copier le code Le code est le suivant :

#opération d'historique d'enregistrement

user_ip=`who -u am i 2>/dev/null |awk '{print $nf}' |sed -e 's/[()]//g'`
logname=`qui -u suis-je |awk '{print $1}'`
histdir=/ user/share/.history
if [ -z $user_ip]
then
user_ip=`hostname`
fi

if [ ! -d $ histdir]

then
mkdir -p $histdir
chmod 777 $histdir
fi

if [ ! logname}]

then
mkdir -p $histdir/${logname}
chmod 300 $histdir/${logname}
fi

export histsize =4000# 🎜🎜#

dt=`date +"%y%m%d_%h%m%s"`

export histfile="$histdir/${logname}/${user_ip} .history. $dt"

export histtimeformat="[%y.%m.%d %h:%m:%s]"
chmod 600 $histdir/${logname}/*.history * 2> /dev/null

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer