Konuyu Açan #1
find ile işlem geçmişini inceleme

Günlük dosyalarını, izin değişikliklerini ve zaman damgalarını içeren derin bir arama için find komutu tek başına güçlü bir araçtır. Aşağıda, sistem yöneticileri için pratik yöntemler ve örnekler paylaşacağım; amaç, geçmişteki işlemlerin izini sürmek ve güvenlik/performans sorunlarını hızlıca tespit etmek.


[olist]
  • Temel fikir: find ile belirli kriterlere uyan dosyaları taramak. Örneğin son değiştirilmiş veya en çok erişilen dosyaları, belirli uzantılara sahip dosyaları veya belirli yazım hatalarıyla karşılaşılabilecek dosyaları sınırlı bir zaman aralığında bulmak mümkün.
  • Zaman damgaları üzerinden geçmiş inceleme: -ctime, -mtime, -atime kullanarak dosyaların son değiştirme, son erişim veya son metadata değiştirme tarihlerini filtrelemek. Örneğin:
    KOD
    1find /var/log -type f -mtime -7 -print 

    Bu komut son 7 gün içinde değiştirilmiş dosyaları listeler; log dosyalarının güncelliğini hızlıca kontrol etmek için yararlı.
  • Güvenlik odağı: Yetkisiz değişiklikleri tespit etmek için belirli dosyalarda zaman damgası değişimini izlemek mümkün. Örneğin kök dizinde kritik konfigürasyon dosyalarını tarayarak anormal değişiklikleri saptamak:
    KOD
    1find / -path '/proc' -prune -o -type f \( -name "[i].conf" -or -name "[/i].ini" \) -mtime -1 -mtime +0 -print
    

  • İzin ve sahiplik değişikliklerini yakalama: -perm ile izinleri, -user/-group ile sahipliği filtreleyerek izinsiz değişiklikleri bulmak mümkün. Örneğin:
    KOD
    1find / -type f -perm /u+x -print
    

    Bu, yürütülebilir dosyaların sistemde hangi kullanıcılar tarafından erişilebildiğini anlamaya yarar.
  • İlerlemesi gereken daha derin tarama: -exec ile bulunan dosyalar üzerinde otomatik kontrol adımları eklenebilir. Örneğin şüpheli bir dosyada hash hesaplayıp karşılaştırmak:
    KOD
    1find /home -type f -name '*.log' -mtime -2 -exec sha256sum {} \\; > /tmp/log_hashes.txt
    

    Bu yaklaşım, değişiklikleri kayıt altına almak ve later karşılaştırma için bir referans seti oluşturmak için uygundur.
  • Performans ve güvenlik notları: Büyük kök dizinlerinde tarama zaman alır, bu yüzden taramayı kademeli yapmak veya sınırlı bir alt ağaç üzerinde test etmek akıllıca olur. Ayrıca izinler ve kök kullanıcı hakları nedeniyle, find komutunu güvenli bir yöntemle çalıştırmak gerekir. -prune ile istenmeyen yolları atlayın ve çıktı için gerektiğinde less veya asteriks kullanın.
  • Pratik uygulama örneği: Belirli bir hizmetle ilişkili dosyaları kronolojik olarak incelemek için zaman damgalarını ve konumları birlikte görün:
    KOD
    1find /var/lib/mysql /var/lib/postgresql -type f -printf "%TY-%Tm-%Td %TH:%TM %p\n" | sort -r | head -n 100
    

    Bu, veritabanı hizmetlerinin güncel dosyalarını hızlıca sıralı bir liste halinde sunar.
  • Kaynak güvenilirliği: Çıktılar üzerinde manuel doğrulama yaparken, dosya türünü (regular file, symlink, etc.) ve sembolik bağlantıları da görmek faydalıdır. -type f ile sadece regular file’ları, -type l ile symlink’leri hedef olarak ayırabilirsiniz.

    Kısaca, find geçmişi incelemek için zaman damgaları, izinler ve konumlar üzerinde odaklanın; çıktıları düzgün filtreleyin, gerektiğinde otomatik kontrol adımları ekleyin ve performansı göz önünde bulundurun. Güvenlik olaylarının kök nedenlerini bulmak için sonraki adımları sistematik olarak planlayın.
  • Yanıt vermek için giriş yapmış olmalısınız.

    Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
    Toplam: 1 (üyeler: 1, misafirler: 0)
    0 alıntı seçildi