Terminal Komut Geçmişi ve Güvenlik Sorunları

Temel Bilgiler

Default olarak son kullandığınız komutlar ~/.bash_history yolunda ki .bash_history dosyasına kayıt edilir.

Kaydedilmiş olan geçmiş komutları history komutu ile görebilirsiniz. Hangi kullanıcıyla login olmuşsanız, history komutu onun geçmişini getirir.

Kaç tane kaydın yapılacağını görmek için: echo $HISTSIZE

Geçmişi temizlemek için: history -c

Geçmiş komutları 1’den başlayarak listelemek için: history | more

En son kullanılan 10 komut: history | tail

En son girdiğiniz n tane komutu listeme: history n

Komut geçmişi içinde arama yapmak: CTRL + R

En son kullanılan komutu kısayol ile çalıştırmak: !e
(e ile başlayan en son çalıştırılmış komut hangisi ise onu tekrar çalıştırır)

En son çalışan komutu aynen tekrar çalıştırmak için: !!

En son ki komutun son kelimesini görmek için (çalıştırmak değil): !$

Güvenlik Sorunları

  • Birden çok kullanıcılı sistemlerde, herhangi bir kullanıcının bu dosyayı değiştirmesini güvenlik sebebiyle istemiyorsanız bash_history dosyasını append-only olarak belirtebilirsiniz.

cd /home/scriptkiddie/

chattr +a .bash_history

  • Aynı şekilde ~/.profile dosyasını da dokunulmaz yapmak isteyebilirsiniz:

chattr +i ~/.profile

  • Silmeye karşı koruma vb. daha detaylı güvenlik önlemleri için:

http://www.debian.org/doc/manuals/securing-debian-howto/ch4.en.html

  • plain-text olarak yazdığınız şifreler bash_history’den okunabilir:

mysqladmin -u root password 'yeni-sifrem'

Saldırgan bash_history‘den şifrelerinizi bu şekilde çalacaktır.

astalavista-hack-log
Astalavista hack-log’undan bir alıntı
  • .bash_history’yi tamamen disable etmek istiyorsanız:

rm ~/.bash_history -rf
history -c
export HISTFILESIZE=0
export HISTSIZE=0
unset HISTFILE

veya:

rm ~/.bash_history
ln /dev/null ~/.bash_history -sf

Devamı için: http://mewbies.com/how_to_disable_bash_history_or_limit_tutorial.html

Tweak

  • .bash_history‘de duplicate komutlarım kaydolmasın istiyorum ne yapayım?

~/.bashrc dosyasına şu satırı ekle: export HISTCONTROL=ignoreboth:erasedups

Python – HTTP Çağrıları ve urllib

Bir metin belgesinde kayıtlı olan tüm URL’leri çağırmak için ufak bir betik yazdım.

  • Kullanıcı dosya yolunu hatalı girerse ufak düzeltmeler yapıyor.
  • Gerçekten öyle bir dosya olup olmadığını kontrol ederek IO.Error’a düşmüyor.
  • HTTPError ve URLError durumları ayıklandı.
  • urllib.request ile HTTP çağrıları yapıyor. İlerde belki Requests‘e çeviririm.

Şurdan: https://gist.github.com/4560864

Moodle Bakımı

Çok şık folyosuna şuradan ulaşabileceğiniz “Moodle Bakımı” konusuna sırf Google indexlesin diye bir de buradan değineceğim. Bu konuda yazılan ilk yazı olduğunu da belirtmek isterim, öhöm öhöm.

Neden Moodle Bakımı?

  • Moodle logları aşırı boyutlara ulaşmışsa,
  • Veritabanınız hantallaşmışsa,
  • Sayfa görüntüleme hızında yavaşlık yaşanıyorsa,

Moodle’ın kullandığı veritabanı tablolarına bakım yapmanız gerekiyor olabilir.

Veritabanlarını Listelemek

  • Tüm veritabanlarını listeleyelim:
  • Veritabanlarının boyutlarını görüntüleyelim:

Veritabanı Boyutları

  • Gördüğünüz gibi moodle isimli veritabanının boyutu 1136 MB !
  • 118 MB boyutunda olan data_free verisine birazdan değineceğiz.
  • /moodle/course/report/log/index.php?id=1 sayfasından tüm loglara göz atalım:
  • “3.545.390 kayıt gösteriliyor.”
  • O halde bi şey yapmalı !

Logların Silinmesi

  • /moodle/admin/settings.php?section=cleanup sayfasında ki;
    • “Kayıtları Sakla” değerini 2 gün olarak ayarlayın.
  • /moodle/admin/settings.php sayfasında ki;
    • “Cronjob, istatistikleri işlemeye ne zaman başlasın?” değerini 0:0 olarak ayarlayın.
  • /moodle/admin/cron.php sayfasını çalıştırın.
  • Bu işlem silinecek kayıtların miktarına bağlı olarak biraz zaman alabilir.

Logların Silinmesi

  • /moodle/course/report/log/index.php?id=1 sayfasından tüm loglara tekrar göz atalım:
    • “39.218 kayıt gösteriliyor.”
  • Görünüşe göre 3,5 milyondan fazla kaydı başarıyla sildik.
  • Tekrar veritabanı boyutunu kontrol edelim:

  • Kayıtları silmiş olmamıza rağmen veritabanı boyutumuzda herhangi bir değişiklik olmadı.
  • data_free değerinde ciddi bir artış gözlendi.

Veritabanı Optimizasyonu

Ne yaptığınızdan emin değilseniz veritabanı üzerinde işlem yapmayın!

  • Büyük miktarlarda silme/ekleme/güncelleme yaptıktan sonra veritabanımızı optimize etmeliyiz.
  • Optimizasyon’a başlamadan önce yedek alalım

  • moodle isimli veritabanını optimize edelim

  • Veritabanı boyutunu son kez kontrol edelim.
  • Tebrikler, 1136 MB olan veritabanı boyutunu 232 MB’a düşürdünüz!

M.Serhat Dündar ~ msdundar