Je voudrais modifier les Last login:
informations qui sont imprimées avec le message du jour, mais je ne trouve pas le script qui génère et résonne.
Où est-il défini, dans un script shell facile à modifier, ou fermé dans un binaire?
Remarque, ceci est différent de ServerFault: Comment puis-je modifier le message de bienvenue au démarrage de ssh? . Les informations de "dernière connexion" ne sont pas imprimées de l'intérieur /etc/update-motd.d/
, mais sont plutôt définies en positionnant le PrintLastLog
drapeau, et ne peuvent donc pas être modifiées comme les autres parties du message du jour.
utmp
etwtmp
fichiers ( en fonction de la distribution, l' enregistrement/var/run/utmp
ou/var/log/utmp
ou consultez le/var
répertoire). Ces fichiers ne sont pas enregistrés sous forme de texte, mais au format binaire, vous aurez donc besoin d'outils spéciaux pour les modifier. Le fichier utmp garde une trace de l'état de connexion actuel de chaque utilisateur. Le fichier wtmp enregistre toutes les connexions et l'historique des déconnexions. Vous aurez besoin d'outils spéciaux pour les modifier, mais je n'ai rien trouvé vraiment.Réponses:
On dirait que le format de la ligne imprimée est compilé en
sshd
:[me@risby ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[me@lory ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s
Je ne vois aucune option de configuration pour changer cela non plus, vous devrez donc modifier la source et recompiler.
Edit : Dans le cas limite, vous pouvez trouver la source sur http://www.openssh.org . Mais vous ne nous dites pas que vous utilisez OpenSSH ou quoi que ce soit à propos de votre plate-forme, il est donc difficile d'être plus précis. S'il s'agit d'un système Linux, vous feriez beaucoup mieux pour obtenir la source appropriée à votre distribution de la manière habituelle, et recompilez via vos mécanismes spécifiques à la distribution.
Mais vraiment, vous ne devriez pas faire cela du tout, sauf si vous avez une raison commerciale extrêmement convaincante de le faire: vous vous faites un cauchemar de maintenance , en allant vers une version compilée à la main d'un package sensible à la sécurité.
la source
sshd
on trouver le code source derrière ?wtmp
, définissent l'PrintLastLog
indicateurno
et recréent l'avis de "dernière connexion" avec mon propre script placéupdate-motd.d
. Beaucoup plus facile à entretenir. :)motd
sortie n'est pas complètement à jour. Je pense doncupdate-motd
ne pas être exécuté à chaque connexion.Les dernières informations de connexion sont stockées dans
/var/log/wtmp
ou/var/log/utmp
ce sont des fichiers binaires. Sans regarder le code source de sshd, je ne peux pas être entièrement sûr, mais je m'attendrais à ce qu'il récupère les informations de ces fichiers à l'aide d'appels système appropriésIl semble peu probable que vous trouviez un moyen de modifier facilement ces informations car elles font partie de la sécurité des utilisateurs.
Si vous voulez vraiment les détails sanglants, vous devez regarder le code source de la fonction
login_get_lastlog
qui se trouve dansloginrec.c
la source
Une autre solution serait d'effacer l'écran au début du fichier motd comme ceci:
Remarque: remplacez
^[
par le symbole d'échappement (que vous pouvez créer dans l'éditeur nano en appuyant sur les touches suivantes: esc+ v+ esc)la source
Peut-être que certains contournent le cas où vous souhaitez simplement modifier la dernière IP de connexion?
Par exemple, vous pouvez changer l'adresse IP affichée en "localhost" en vous reconnectant à ssh à partir d'une machine télécommandée!
Connexion à distance via ssh >> ssh username @ localhost
Maintenant, la dernière adresse IP enregistrée sera localhost
la source