SSH “son giriş” mesajını nasıl düzenlerim?


16

Last login:Günün mesajı ile birlikte basılan bilgileri düzenlemek istiyorum , ancak üreten ve yankılanan betiği bulamıyorum.

Düzenlemesi kolay bir kabuk komut dosyasında nerede tanımlanır veya bir ikili dosyada kapatılır?


Not, bu ServerFault'dan farklıdır : ssh başladığında karşılama mesajını nasıl düzenleyebilirim? . "Son giriş" bilgi olduğu değil içeriden dışarı baskılı /etc/update-motd.d/, ancak bunun yerine ayarlayarak tanımlanır PrintLastLogbayrağı ve bu nedenle günün mesajının diğer parçaları gibi düzenlenemez.


Bu bilgiler kaydedilir utmpve wtmpdosyaları (dağıtım, çek bağlı /var/run/utmpveya /var/log/utmpveya göz içinde /vardizinde). Bu dosyalar metin olarak değil, ikili olarak kaydedilir, bu nedenle bunları düzenlemek için özel araçlara ihtiyacınız olacaktır. Utmp dosyası, her kullanıcının geçerli oturum açma durumunu izler. Wtmp dosyası tüm girişleri ve çıkışları kaydeder. Bunları düzenlemek için özel araçlara ihtiyacınız olacak, ancak gerçekten hiçbir şey bulamadım.
askerler

Yanıtlar:


14

Yazdırılan çizginin biçimi şu şekilde derlenmiş gibi görünüyor 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

Bunu değiştirmek için herhangi bir yapılandırma seçeneği göremiyorum, bu yüzden kaynağı düzenlemeniz ve yeniden derlemeniz gerekecek.

Düzenleme : Sınırlayıcı durumda, kaynağı http://www.openssh.org adresinde bulabilirsiniz . Ancak bize OpenSSH kullandığınızı veya platformunuzla ilgili herhangi bir şey söylemiyorsunuz, bu yüzden daha spesifik olmak zor. Bir Linux sistemiyse, kaynağı dağıtımınıza uygun şekilde her zamanki şekilde almak ve dağıtımınıza özgü mekanizmalarınızla yeniden derlemek çok daha iyi olur.

Ama gerçekten, bunu yapmak için son derece cazip bir iş nedeniniz yoksa bunu hiç yapmamalısınız : kendiniz için bir bakım kabusu yapıyorsunuz , güvenliğe duyarlı bir paketin elle derlenmiş bir versiyonuna gidiyorsunuz.


Arkasındaki kaynak kodu nerede sshdbulunabilir?
IQAndreas

1
Aslında, kaynakta başka bir şey planlıyordum. Verileri nasıl ayrıştırdıklarını görmek wtmp, PrintLastLogbayrağı ayarlamak ve nokendi betiğimi yerleştirerek "son giriş" uyarısını yeniden oluşturmak istedim update-motd.d. Çok daha kolay bakım. :)
IQAndreas

1
Sık sık motdçıktının tamamen güncel olmadığını görüyorum . Bu yüzden update-motdher girişte çalıştırılmayabileceğini düşünüyorum .
kasperd

@kasperd Her 10 dakikada bir cron işi olarak güncellenir. Bu, internetten bir dize almak gibi "yavaş" bir şey yapmaya çalıştığında yardımcı olmaktır, bu yüzden birisi her giriş yaptığında sunucuyu yavaşlatmaz.
IQAndreas

3
"Son giriş" mesajı kullanıcıya özelken , motd sistem çapındadır . Mesajı nasıl yeniden oluşturmak istediğinizden emin değilim. Ayrıca, bu mesajı gerçekten okuyan ve mümkün olduğunca doğru olmasını isteyen insanlar var.
Simon Richter

5

Son oturum açma bilgisi saklanır /var/log/wtmpveya /var/log/utmpikili dosyalardır. Sshd için kaynak koduna bakmadan tamamen emin olamıyorum ama uygun sistem çağrıları kullanarak bu dosyalardan bilgi alıyor beklenebilir

Bu bilgilerin kolayca kullanıcı güvenliğinin bir parçası olduğunu değiştirmek için bir yol bulmak olası görünmüyor.


Gerçekten kanlı ayrıntılar istiyorsanız, o zaman bulunan fonksiyonun kaynak koduna bakmanız gerekir login_get_lastlog.loginrec.c


@lain +1 kaynak kodu önerisi nedeniyle - bunun kanlı bir çözüm olduğunu düşünmeme rağmen, tüm ihtiyacı olan yerel bir git aynası. Kaynağı kullanmak, sistem yöneticileri için bile şeytandan değil.
peterh - Monica'yı

2

Başka bir çözüm, motd dosyasının başındaki ekranı şu şekilde temizlemek olacaktır:

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

Not: aşağıdaki ^[sembollere basarak kaçış sembolü ile değiştirin (nano düzenleyicide oluşturabilirsiniz: esc+ v+ esc)


-2

Belki de sadece son giriş IP'sini değiştirmek istemeniz durumunda etrafta dolaşabilirsiniz?

Örneğin, uzaktan kumandalı makineden tekrar ssh'a giriş yaparak gösterilen IP adresini "localhost" olarak değiştirebilirsiniz!

Ssh >> ssh kullanıcı adı @ localhost üzerinden uzaktan giriş

Şimdi kaydedilen son IP yerel ana bilgisayar olacak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.