Il peut s'avérer utile parfois de montrer à quelqu'un comment faire telle ou telle opération en ligne de commande.
L'idéal est donc qu'il nous voit faire directement en console mais ce n'est pas toujours possible pour peu que la personne ne soit pas présente physiquement.
C'est à ce moment que la commande script intervient.
Cette commande permet de lancer un programme et d'enregistrer tout ce qui passe dans les entrées et sorties standard dans le fichier de son choix.
Par exemple, si l'utilisateur toto veut montrer à l'utilisateur machin comment faire un listing de répertoire, il peut très bien taper les commandes suivantes :
$ script listing.txt
$ cd /mon/dossier/exemple
$ ls -lh
$ exit

Il suffira ensuite à toto d'envoyer le fichier listing.txt à machin afin qu'il voit comment faire.
Une autre utilisation bien utile de script peut être le monitoring (qui a dit espionnage ?) de l'activité d'un utilisateur.
Le principe est simple : il suffit de remplacer le shell normalement définit par un shell créé par nos soins qui va interfacer script et le shell normalement lancé.
Un petit exemple d'un tel shell :
#!/bin/sh
export SHELL=/bin/bash
DIR=/home/$USER/.logs
mkdir -p $DIR
file="$DIR/$USER_`date '+%Y-%m-%d_%H_%M'`.log"

bash -l -c "script -q -a $file"
exit


Une fois lancé, ce shell va créé un dossier caché ".logs" dans le répertoire personnel de l'utilisateur (s'il n'existe pas déjà) et y enregistrer les logs de ses sessions.
Comme les plus machiavéliques l'auront remarqué, rien n'empêche l'utilisateur surveillé de voir ce dossier et d'en modifier le contenu.
En effet, script s'exécutant avec les droits de l'utilisateur cible, il faut bien que celui-ci dispose des droits d'écritures dans le dossier et ses fichiers. Enfin, un simple listing des processus s'exécutant sur la machine lui révèlera qu'il est surveillé via cette commande.
Vous l'aurez compris, question furtivité et protection des données récupérées ce n'est pas l'idéal. Mais le but de cet exemple n'est pas de réaliser un espionnage furtif de l'utilisateur, simplement de l'avertir qu'il est surveillé.
Je ferais peut être plus tard un article traitant d'un espionnage un peu plus discret à base de "keylogger" et de dissimulation de processus.
Bien sûr, man script pour plus d'informations sur la commande script.