Maison > Article > Opération et maintenance > Comment utiliser la fonction d'enregistrement des commandes historiques du shell Linux
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=4000histsize=4000
histtimeformat='%f %t'
export histtimeformat
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.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
then
mkdir -p $histdir
chmod 777 $histdir
fi
then
mkdir -p $histdir/${logname}
chmod 300 $histdir/${logname}
fi
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!