• # Bash, ssh et history

    Posté par . En réponse au message Accès SSH, récupérer ip, nom de la personne. Évalué à 2.

    Salut,

    Est-ce que l'adresse IP du client SSH peut te suffire pour tracer ce que tu veux ?

    Si c'est le cas, tu peux arriver à tes fins simplement en jouant un peu de la configuration dans le fichier .bashrc :
    - lors d'une connexion SSH, tu doit avoir les variables SSH_CLIENT et SSH_CONNECTION positionnées. Le premier mot de ces variables indique l'adresse IP du client
    - pour savoir s'il s'agit d'une prière connexion (et pas d'un sous-shell), il suffit de vérifier que la variable SHLVL est égale à 1 : ça peut te servir pour faire un test dans .bashrc avant de poser tes questions au besoin
    - une fois que tu as récupéré l'adresse IP ou le nom du client, tu peux créer un fichier d'historique des commandes personnalisé en attribuant une valeur à la variable HISTFILE (par exemple "export HISTFILE=~/.bash_history_$IP")
    - pense à modifier la valeur de HISTFILESIZE si tu veux conserver plus de commandes que les 500 par défaut
    - positionne la variable HISTTIMEFORMAT à quelque chose comme "%Y%m%d-%H%M%S " pour avoir un horodatage des commandes passées par les utilisateurs

    Evidemment, ce type de chose est aussi possible avec d'autres shell comme ksh (à part peut être l'horodatage) ou zsh (avec l'option EXTENDED_HISTORY on peut même avoir la durée des commandes).

    Bien sûr tout ceci suppose d'avoir une certaine confiance envers les utilisateurs concernés : rien ne les empêche de supprimer les fichiers d'historiques...

    J'espère que tout cela pourra t'aider.

    A+
    JJD