أرغب في تعديل Last login:المعلومات المطبوعة جنبًا إلى جنب مع رسالة اليوم ، ومع ذلك لا يمكنني العثور على النص الذي يولد ويصدر صدى.

أين يتم تعريفه ، في برنامج نصي شيل سهل التحرير ، أو مغلق في ثنائي؟


ملاحظة ، هذا يختلف عن ServerFault: كيف يمكنني تحرير رسالة الترحيب عند بدء ssh؟ . لا تتم طباعة معلومات "تسجيل الدخول الأخير" من الداخل /etc/update-motd.d/، ولكن يتم تحديدها بدلاً من ذلك عن طريق تعيين PrintLastLogالعلم ، وبالتالي لا يمكن تحريرها مثل الأجزاء الأخرى من رسالة اليوم.

answer

يبدو أنه تم تجميع تنسيق الخط المطبوع إلى sshd:

[[email protected] ~]$ ssh lory
Last login: Fri May 23 10:59:01 2014 from 2a01:2c0:e:300:7271:bcff:feac:445a
[[email protected] ~]$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s

لا يمكنني رؤية أي خيار تكوين لتغيير ذلك أيضًا ، لذلك ستحتاج إلى تحرير المصدر وإعادة التحويل البرمجي.

تحرير : في الحالة المحدودة ، يمكنك العثور على المصدر على http://www.openssh.org . لكنك لا تخبرنا أنك تستخدم OpenSSH ، أو أي شيء يتعلق بالنظام الأساسي الخاص بك ، لذلك من الصعب أن تكون أكثر تحديدًا. إذا كان نظام Linux ، فمن الأفضل أن تحصل على المصدر المناسب للتوزيعة الخاصة بك بالطريقة المعتادة ، وإعادة التجميع من خلال آليات التوزيع الخاصة بك.

لكن في الحقيقة ، لا يجب عليك القيام بذلك على الإطلاق ما لم يكن لديك سبب تجاري مقنع للغاية للقيام بذلك: أنت تصنع كابوس صيانة لنفسك ، وتنتقل إلى نسخة مجمعة يدويًا من حزمة حساسة للأمان.

يتم تخزين معلومات تسجيل الدخول الأخيرة /var/log/wtmpأو /var/log/utmpتكون ملفات ثنائية. بدون النظر إلى الكود المصدري لـ sshd ، لا يمكنني أن أكون متأكدًا تمامًا ولكني أتوقع أنه يسترجع المعلومات من تلك الملفات باستخدام مكالمات النظام المناسبة

يبدو من غير المحتمل أن تجد طريقة لتغيير هذه المعلومات بسهولة فهي بعد كل جزء من أمان المستخدمين.


إذا كنت تريد حقًا التفاصيل الدموية ، فأنت بحاجة إلى إلقاء نظرة على الكود المصدري للوظيفة login_get_lastlogالتي يمكن العثور عليهاloginrec.c

قد يكون الحل الآخر هو مسح الشاشة في بداية ملف motd كما يلي:

^[[H^[[2J
whatever was originally in the motd file here

ملاحظة: ^[استبدل برمز الهروب (الذي يمكنك إنشاؤه في محرر nano بالضغط على المفاتيح التالية: esc+ v+ esc)

ربما بعض الحلول في حالة ما إذا كنت تريد فقط تغيير عنوان IP الأخير لتسجيل الدخول؟

على سبيل المثال ، يمكنك تغيير عنوان IP المعروض إلى "localhost" عن طريق تسجيل الدخول إلى ssh مرة أخرى من جهاز يتم التحكم فيه عن بُعد!

تسجيل الدخول عن بعد عبر ssh >> ssh username @ l ocalhost

الآن سيكون آخر عنوان IP تم تسجيله هو المضيف المحلي