Sudo Komutlarının Loglanması

Daha önceki yazımda kullanıcıya nasıl sudo yetkisi verilebileceğinden bahsetmiştim. Bu yazıda da sudo yetkisi verdiğiniz kullanıcının uyguladığı komutları nasıl loglayacağımıza bakacağız. Önceki yazıda sudoers dosyasına kullanıcıyı eklemiştik, bu yazıda sudoers.d altına kullanıcıları oluşturacağız.

# vi /etc/sudoers.d/gokhan

gokhan   ALL=(ALL)   NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL
Defaults iolog_dir=/var/log/sudo-io/%{user}

gokhan kullanıcısına şifresiz olarak sudo komutu çalıştırma yetkisi vermiş olduk. iolog_dir dizinini oluşturmamıza gerek yok, default olarak dizin oluşacaktır.

sudo-io dizinine baktığınızda birden fazla dosya oluştuğunu görürsünüz.

.
└── gokhan
    ├── 00
    │   └── 00
    │       ├── 01
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       ├── 02
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       ├── 03
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       ├── 04
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       ├── 05
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       ├── 06
    │       │   ├── log
    │       │   ├── stderr
    │       │   ├── stdin
    │       │   ├── stdout
    │       │   ├── timing
    │       │   ├── ttyin
    │       │   └── ttyout
    │       └── 07
    │           ├── log
    │           ├── stderr
    │           ├── stdin
    │           ├── stdout
    │           ├── timing
    │           ├── ttyin
    │           └── ttyout
    └── seq

Bu dosya çokluğunun içinde kaybolmak yerine aşağıdaki komut ile sudo izni verdiğiniz kullanıcının neler yaptığını görebilirsiniz.

# find /var/log/sudo-io/ -name log -exec cat {} \; | grep "::" -A 2 | awk -F: '$1 ~ /^[0-9]+$/{printf  "%s%s",(NR>1)?"\n":"",$1;next} {printf ";" $0} END{printf "\n"}'

1427012536;/var/log;/usr/bin/yum install
1427014071;/var/log;/bin/cat /etc/passwd
1427011890;/home/gokhan;/usr/bin/yum update
1427014063;/var/log;/bin/cat /etc/shadow
1427010846;/home/gokhan;/bin/ls /var/log/sudo-io/
1427010852;/home/gokhan;/bin/ls /var/log/sudo-io/gokhan
1427010823;/home/gokhan;/usr/bin/yum update
1427010863;/home/gokhan;/bin/cat /var/log/sudo-io/gokhan
1427011064;/home/gokhan;/usr/bin/yum update

 

22 Mart 2015

Posted In: Küçük Notlar, lkd-gezegen, sudo, sudo komutlarının loglanması, sudo log, sudoers

Vimdiff Kullanımı

İki yada daha fazla txt dosyalarının, vim editörün diff mode özelliğini kullanarak diff farkını görmek için kullanılır. Vim text editörünün diff modda çalıştırılması ( vim -d ) ile vimdiff komutunu vererek çalıştırmak arasında bir fark yoktur. Aşağıdaki resimdeki gibi dosyalar açıldığında koyu kırmızı satırlar, iki dosya arasındaki diff farkını gösterir. ” –#########– “şeklinde dosyaların başında ve sonunda görünmesinin sebebi, o satırların iki dosyada da aynı olmasıdır. Vimdiff, fark bulunmayan satırları göstermez.

Kullanımı

# vimdiff file1 file2 [file3 [file4]]
# vim -d file1 file2 [file3 [file4]

httpd.conf ( resimde solda ) ve apachenin kaldırılması sonucunda oluşan httpd.conf.rpmsave dosyalarının aralarında diff farkına bakalım,

# vimdiff httpd.conf httpd.conf.rpmsave

Editör içerisinde iken iki dosya arasında gezinmek için aşağıdaki kısayollardan biri kullanılabilir;

  • Ctrl+W + Ctrl+W
  • Ctrl+W + W

İki dosya arasındaki farkları uygulamak için aşağıdaki editör komutları yada kısayolları kullanılır,

  • :[range]diffput ( yada dp kısayolu ), imlecin bulunduğu satırındaki değişikliği karşı dosyaya uygulayarak, karşı dosyanın aynı satırını değiştirir. ( put )
  • :[range]diffget ( yada do kısayolu ), imlecin bulunduğu satırı, karşıdaki dosyanın aynı satırına göre, imclecin bulunduğu satırı değiştirir. ( get )

diffput yada diffget komutların başlarında range kullanılmaması durumunda, farklı satırların alt alta olması durumunda vim grup olarak  değişiklik uygular. Sadece satırda değişiklik yapmak için diffget ve diffput aşağıdaki şekilde kullanılır.

  • :39,diffget  ; 39. satırı karşı dosyadaki aynı satıra göre imlecin bulunduğu satırı değiştirir.
  • :299,diffput ; Karşı dosyadaki 299. satırı değiştir.
  • :200,$diffget ; 200. satırdan sonra son satıra kadar değişiklikleri uygular.

Vim diff mode özelliğini daha ayrıntılı incelemek için man sayfasına bakabilirsiniz.

 

5 Eylül 2014

Posted In: diff, diff kullanımı, iki dosya arasındaki fark, iki dosya arasındaki farkı görmek, Küçük Notlar, lkd-gezegen, vim, vim diff mode, vimdiff

WP Twitter Auto Publish Powered By : XYZScripts.com