Ürün sunucusuna erişme nedenini kaydetmek için sistem yöneticilerini zorlamak için bir tekniğe ihtiyacınız var


17

Şirketim, bir kullanıcı bir üretim sunucusunda her oturum açtığında o kişinin oturum açma nedeninin ve kullanıcının yapmak istediği değişikliklerin günlüğe kaydedilmesini gerektirir. Ekibim bunu yapmak istiyor ama unutması kolay. Hatırlamalarına yardım etmek istiyorum. Bir motd düşündüm, ama biraz daha güçlü bir şey istiyorum.

İlk düşüncem, kullanıcının kabuğunu şöyle bir komut dosyasına dönüştürmekti

vim /logs/logindate.txt 
bash -l

Daha iyi veya daha standart bir teknik var mı?

Not: Fikir, bu kullanıcıların sistem yöneticisi olmaları ve sistemi bozmadan günlük girişi yapmak istemeleri - bunu sık sık unutmayı unuturlar. Yani, eğer ctrl-c yapabilirlerse, iyi ... yapmayacaklarını varsayıyoruz.


6
Bir iş akışı / prosedür sorununa teknik bir çözüm bulmaya çalışıyorsunuz. IMHO, böyle bir çaba başarısızlığa mahkumdur ve asıl iş akışı / prosedür sorunu doğrudan teknik olmayan yollarla ele alınmalıdır.
John

11
Sağol kanka. Davranışsal değişimi teşvik etmek için teknolojiyi kullanmaya çalışıyorum. Sanırım her unutuşlarında onlara bir kaya ile kulüp verebilirim, ama bence İK teknolojik yaklaşımı tercih ediyor.

8
@John İş akışlarını uygulamak ve yardımcı olmak için teknolojinin amacının bir parçası değil mi?
Michael Martinez

1
Fesih dahil olmak üzere disiplin cezası.
Michael Hampton

4
Evet, ama soru "yapmalı mıydın?" soru, "yapabilir misin?" Birincisi bir değer yargısıdır; biri bu foruma layık teknik bir sorudur. Ekibimi yönetme yeteneğime güveniyorum. Kayayı büyük bir başarıyla kullanabilirdim, ama çok fazla kan. İyi olmayı seviyorum. Sadece unutkan olan iyi yöneticilerim var. :) @ aaron-copley bu sefer adam gibi görünüyor. Herkese teşekkürler!

Yanıtlar:


19

Pam_exec.so adresine bakın . PAM'ın sistem kimlik doğrulamasının oturum arayüzünde oturum açarken bir komut dosyası çalıştırabilirsiniz. Kullanıcı bir kabuk almadan önce komut dosyası kök olarak çalışır, bu nedenle read? Yine de deneyebilirsiniz readve kullanıcıdan bir neden almak ve bunu bir deyimle syslog'a giriş yapabilirsiniz logger. (Aşağıda atladım, ancak kimsenin sebepsiz olarak çıkmasını önlemek için CTRL + C'yi yakalayabilirsiniz.) $ PAM_USER giriş yapan kişiye ayarlanacak, böylece bunu logger deyimine dahil edebilirsiniz.

Misal:

/Etc/pam.d/system-auth adresindeki oturumun üstünde:

session required pam_exec.so /usr/local/sbin/getreason

Ve / usr / local / sbin / getreason:

#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"

Mükemmel çalışmazsa özür dileriz. Test etmedim, ama son zamanlarda benzer bir şey yaptım. (Girdi yakalamadı.)


Düzenleme: Bu konuda ne kadar düşünürsem, çalıştığı aşamadan dolayı çalışacağını sanmıyorum. Aynı getreasonDeğiştirmeye sonra komut dosyası çalışması gerekir $PAM_USERile $(logname), ancak idam edilmesi gerekebilir /etc/profile. (Önce etkileşimli kabuk için test edin.)

Her iki seçeneği de bırakacağım çünkü en azından başka bir şey yoksa doğru yönde düşünmenizi sağlayacaktır.


1
Bunun için çok teşekkür ederim. Mükemmel görünüyor. Başka bir şey yoksa, girişi yakalamak için C'ye küçük bir şey yazabilirim. Bunu uygulayacağım ve işe yarayıp yaramadığını size bildireceğim.

1
@BiggyDevOPs: yararlı öneri: günlüğü tutmak için düz bir dosya kullanıyorsanız, bir geçmişiniz olması için git veya svn içine koyun
Michael Martinez


0

Bunu başarmanın başka bir yolu, merkezi günlük oluşturma tesisinize sahip olmaktır (Logstash'ı düşünüyorum, ancak bunu başka şekillerde yapabilirsiniz) auth.log'unuzu üretim sistemlerinde almak, insanların gerekçelerini kaydedebileceği bir uygulamaya beslemek .


0

HP Server Automation * çalıştıran müşterilere uygulandığını gördüğüm şekilde , aracın onaylama adımlarının bir kombinasyonuyla doğuştan günlüğe kaydedilmesine güveniyorlar (Dev dışında, sudo veya root özelliğinin olmadığı birkaç müşteriye gittim ).

Onaylar, Çözüm ve Operasyonlar Orkestrasyonu veya YG içindeki idari girişler vb. Yoluyla yapılabilir.

Bütün varlık dedi ki, @ kurumsal otomasyon ve yönetim araçlarının dışında, Aaron Copley 'ın cevabı mükemmel bir seçimdir.


* Ben kıdemli bir HPSA, HPOO ve HP otomasyon paketi danışmanının diğer yönleriyim


0

Bir çözüm ararken Aaron Copley'nin cevabını okudum ve “Kullanıcı kabuğumu değiştirirsem ne olur?” Diye düşündüm.

Ubuntu 14.04 makinemde başarıyla yaptım:

# usermod -s /usr/bin/loginScript username

Senaryonuzda oturum açma nedenini kolayca yakalayabilirsiniz. Benimki şöyle:

#!/bin/bash
read -p "Tell me why you logged in:" reason
echo "You told me: $reason" >> /var/log/reasonLogin.log
/bin/bash

Dikkat etmeniz gereken bir şey: komut dosyası kök olarak çalıştırılmadığından, kullanıcıya bu işi yapmak için bazı izinler vermeniz gerekebilir.

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.