Oturumdan çıkılsın mı veya bağlantı kesilsin mi?


13

SSH üzerinden bir sisteme giriş yapıyorum ve ister kasıtlı bir çıkış (kabuktan çıkma) ister SSH bağlantım kesildi / sonlandırıldı, oturum kapatma üzerinde çalıştırılacak bir komutu zorlamak istiyorum. Bunu ayarlamanın bir yolu var mı? Şu anda en iyi tahminim, giriş kabuğunu SSH kapanışında (SIGHUP?) Gönderilen sinyali engelleyen ve daha sonra komutu yürüten bir programa değiştirmek, ancak daha temiz bir çözüm olup olmadığını merak ediyorum.


Komutu uzak makinede mi yoksa bağlantıyı başlattığınız komutta mı yürütmek istiyorsunuz?
xx4h

Yanıtlar:


20

Bunu yapmanın en iyi yolu pam kullanmak olacaktır .

İçinde /etc/pam.dbirkaç dosya olacak, bunlardan biri çağrılacak sshd. Diğer girişleri (GUI veya gerçek TTY gibi) değil, yalnızca ssh'yi etkilemek istiyorsanız, bu dosyayı istiyorsunuz.
Tüm girişleri etkilemek istiyorsanız, 'ortak' bir dosya istersiniz. Bu diğer 'ortak' dosyanın adı dağıtımına göre değişir, ancak temel dosyaya ulaşana kadar dosyadaki includeve substackifadelerini izleyerek sshddosyayı takip edebilirsiniz.

Kullanmak istediğiniz dosyayı belirledikten sonra /etc/pam.d, sessionbölüme aşağıdakine benzer bir satır ekleyin :

session     optional    pam_exec.so quiet /etc/pam_session.sh

Bu, /etc/pam_session.shher giriş yaptığında ve oturumu kapattığında (zarif veya uygunsuz bir şekilde) arama yapılmasına neden olur.

Şimdi sadece yaratmanız gerekiyor /etc/pam_session.sh. Aşağıda, her kullanıcı oturumu kapattığında bir şeyi çalıştırmak için kullanabileceğiniz bir örnek yer almaktadır:

#!/bin/sh
if [ "$PAM_TYPE" = "close_session" ]; then
  something
fi

( chmod a+xsenaryoyu unutmayın )

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.