Bir kullanıcı tarafından yürütülen her komutu nasıl kaydederim?


32

Sunucumdaki tüm kullanıcıların etkinliklerini izlemek istiyorum.

Kullanıcı vim gibi bazı editörlerden bir kabuk komutu çalıştırsa bile, onları günlük dosyasında görmek istiyorum.

Acct aracını kontrol ettim ancak tüm komutları listelemiyor. (Şimdiden bazı seçenekleri kaçırdıysam, lütfen beni düzeltin).

Bu sorunu çözmek için hangi Linux aracına bakmalıyım?


1
. man senaryosu (1)
adaptr


Yanıtlar:


32

Bu satırı, oturum açma işlemlerinden sorumlu olan pam config'nize ekleyin (redhat tabanlı dağıtımlarda sistem kimlik doğrulaması)

session    required     pam_tty_audit.so enable=*

Ne yapıldığını bulmak için kullanabilirsin.

ausearch -ts <some_timestamp> -m tty -i

Bu şöyle bir çıktı üretir:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

Bunun tek dezavantajı okunması biraz zor olabilir, ancak teoride çoğu oturumu kaydetmek için kullanılabildiğinden, önerilen çözümlerden çok daha iyidir.

Düzenleme: Ah ve sen daha yararlı olabilecek bir liste oluşturmak için aureport kullanabilirsiniz.

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

Detaylar için teşekkürler. Ubuntu 10.04 kullanıyorum LTS / lib / security / klasörünü kontrol ettiğimde / modül yok ama o modül için bir sayfa var. Bu hatayı yakaladığımı düşünüyorum bugs.launchpad.net/ubuntu/+source/pam/+bug/588547 Bu modülü kurabileceğim başka bir yol var mı?
Supratik

Hata raporu, bir düzeltme ve güncellemenin dağıtıldığını gösteriyor.
Matthew Ife

@Mlfe PAM kaynak kodunu derledim ve .so dosyasını / lib / security / dizinine kopyaladım ve çalıştı. Tekrar teşekkürler.
Supratik

1
@CameronKerr: şifre sorunu sabittir: redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
Yukarıdakilerin çalışabilmesi için önce auditdarka plan programının etkinleştirilmiş olması gerektiğine dikkat edin (CentOS 6.7 kurulumumda varsayılan değildi). Daemon'u başlatmak için: kullanın service auditd startve bu değişikliği kalıcı hale getirmek için (yeniden başlatmalardan sonra), chkconfig auditd on Source: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… ve access.redhat.com/documentation/en-US/ adresini kullanın. Red_Hat_Enterprise_Linux /…
jonny


2

Snoopy kullanabilirsiniz .

Basit bir komut günlüğü kütüphanesidir ve uygun bir denetim çözümü değildir (kolayca çevrilir). Açıklama: Ben şu an meraklıyım.


2

Daha az bilinen bir numara, ancak en harika olanı yalnızca yerleşik denetim yeteneklerini kullanmaktır sudo. Sudo sudoreplay, tekrar çalma işlemlerini kolaylaştıran bir komutla gönderilir. Hatta vimseansları bile iletecektir (önerdiğiniz gibi).

İşte birkaç kolay adımda nasıl kullanılacağı:

  1. sudoshSisteminize yükleyin ; Bu, sudokullanıcının sudokendisini (değil root) kendi yapmasını sağlayan ve sistem oturum açma kabuğu olarak kullanılabilen komutun etrafındaki bir kabuk sarmalayıcısıdır.
  2. sudoGünlük kaydını etkinleştir . Düzenle /etc/sudoers.d/sudosh: Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. /etc/shellsKullanarak girişlere izin vermek için bu komutu ekleyin : /usr/bin/sudosh

    İpucu : Kullanıcıların oturum açmak için diğer mermileri kullanmalarını önlemek için, diğer mermileri elinden alın /etc/shells.

  4. Kabuğu foobarkullanmak için kullanıcıyı güncelleyin sudosh. chsh -s /usr/bin/sudosh foobar

Daha ayrıntılı bilgi için bakınız: https://github.com/cloudposse/sudosh/


1

işte sihirli bir çözüm: http://www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • yum yükleme psacct (redhat)
  • sudo apt-get install acct

Sen kullanıcı komutları / bağlantı vb. ile ilgili istatistikleri görüntüleyebilirsiniz.

Belirli bir kullanıcı tarafından çağrılan tüm komutları listele ...

Muhasebe kayıt defterlerini komut adına göre arayın: $ lastcomm rm $ lastcomm passwd

ve dahası, daha fazla bilgi için lütfen yukarıdaki bağlantıyı ziyaret edin.


3
Soruda: 'acct tüm komutları listelemek değildir' demişti.
Putnik
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.