Outils pour utilisateurs

Outils du site


shell_enregistrer_sa_session_shell_dans_un_fichier

tag_shell_session_fichier_enregistrer

Shell - Enregistrer sa session shell dans un fichier

Certains programmes sous Linux ne sont pas simples à installer. Et ils demandent de longue procédure. Du coup, on s'arme d'un terminal et d'un « gedit » pour noter tout ce que l'on fait afin de pouvoir le refaire. Mais c'était sans compter sur la puissance du Shell Linux. La commande « script » permet de lancer un terminal tout en enregistrant ce qui se passe à l'écran.

$ script /tmp/fichier.txt

Ensuite, faites ce que vous voulez dans le terminal et quitter en tapant « exit ». Regardez le fichier « /tmp/fichier.txt », tout est écrit. Seul problème, trop de chose sont écrite, tels que les « backspace » et les « Entrée ». Du coup, ce n'est pas forcément pratique. Une autre technique consiste alors à lancer un nouveau bash en tapant :

# bash -iv 2>&1 | tee /tmp/fichier.txt

« tee » est en fait une commande qui s'occupe de prendre ce qu'elle reçoit en entrée et le renvoie à la fois sur la sortie et dans un fichier. Du coup tout ce que vous allez faire dans le terminal sera inscrit dans le fichier. Mieux, si une autre personne se connecte en SSH sur la machine et fait

# tail -f /tmp/fichier.txt

elle pourra suivre avec vous le déroulement de l'opération. Cela peut également servir pour sécuriser l'accès d'un serveur. Si vous n'aimez pas donner d'accès SSH à votre machine mais que vous n'avez pas le choix, faites ceci :

# touch /usr/local/sbin/my-script
# chmod +x !$
# vi !$

puis collez le code suivant :

#!/bin/sh

bash -iv 2>&1 | tee -a /var/log/$USER.log

Ensuite dans le fichier « /etc/passwd », recherchez la ligne de l'utilisateur à surveiller, et à la fin de la ligne à la place du fameux « /bin/sh » ou autre, mettez « /usr/local/sbin/my-script ». Du coup, à chaque fois que l'utilisateur va se connecter, tout ce qu'il fait sera enregistré dans le fichier de log. Cela reste cependant limité car, le fichier de log doit être accessible en écriture pour l'utilisateur en question. Si il connaît l'emplacement du fichier il peut à sa guise le modifier voir le vider pour effacer ses traces.

shell_enregistrer_sa_session_shell_dans_un_fichier.txt · Dernière modification: 03/12/2010 07:27 (modification externe)