Konuyu Açan #1
lsof ile Açık Dosya Takibi

Günlük sunucu yönetimlerinde hangi süreçlerin hangi dosyalara eriştiğini anlamak, sorunları tespit etmek ve güvenlik denetimi yapmak için temel bir yetkinliktir. lsof, bu görünürlüğü sağlayan en yaygın araçlardan biridir: hangi dosyaların hangi süreçler tarafından açık tutulduğunu, bunların dosya tipi, inode bilgisi ve bağlantı noktalarıyla nasıl ilişkili olduğunu net şekilde gösterir.


[l] lsof nedir ve neden kullanılır
  • lsof, "list open files" ifadesinin kısaltmasıdır. Linux, Unix benzeri sistemlerde çalışan her süreç için açık dosyaları, kök dizinlerini, soketleri ve gömülü cihaz dosyalarını listeler. Özellikle şu senaryolarda değerli olur:
  • Bir servis veya daemon’un hangi dosyaları okuduğunu veya yazdığını görmek.
  • Bir dosya kilidi veya log dosyası üzerinde hangi süreçlerin etkisi olduğunu tespit etmek.
  • Ağ bağlantılarıyla ilişkili dosya descriptor’larını izlemek ve güvenlik incelemeleri yapmak.


  • Temel çıktı üzerinde satır satır ne anlama gelir?
  • COMMAND PID USER LOAD CE DLOCK fd TYPE DEVICE SIZE/OA NODE NAME gibi sütunlar bulunur. Sütunlar şu bilgileri verir: hangi komut, hangi süreç ID’si, kullanıcı adı, hangi modda açık, dosya türü (REG regular, DIR directory, DEL delink), cihaz ve yol bilgisi.


  • Yaygın kullanım kalıpları
  • Belirli bir dosyanın hangi süreçler tarafından açık olduğunu görmek:

lsof /var/log/syslog
  • Belirli bir ağ bağlantısı ile ilişkili dosyaları bulmak:

lsof -i :22
  • Belirli bir kullanıcıya ait açık dosyaları listelemek:

lsof -u www-data
  • Açık dosya sayılarını süreç bazında görmek:

lsof +D /var/www/html
  • Prosesin yönettiği tüm dosyaları çıkarmak:

lsof -p 1234

  • Güvenlik ve yönetim açısından ipuçları
  • Olası yanlış konumlandırma veya izinsiz erişim belirtilerini tespit etmek için log dosyaları ve soketler arasındaki bağları analiz edin.
  • Logrotate veya yeniden başlatma sırasında hangi dosyaların kilitli kaldığını görmek, servis kesinti sürelerini azaltır.
  • Kernel ile kullanıcı alanı arasında köprü oluşturan dosya descriptor’larını inceleyerek beklenmeyen dışa açık dosya yollarını tespit etmek mümkündür.


KOD
12345678# Basit bir örnek
lsof -iTCP -sTCP:LISTEN

[b]Belirli bir kullanıcıya ait tüm açık dosyalar[/b]
lsof -u nginx

[b]Belirli bir dosyanın hangi süreçler tarafından açık olduğunu gerçek zamanlı takip etmek[/b]
lsof /var/log/auth.log


Bu araçla çalışırken dikkat edilmesi gereken hususlar, özellikle üretim sistemlerinde çok sayıda çıktı üretebildiğinden filtreleri doğru kullanmak ve gerekiyorsa çıktıyı kayda almak için redirect etmek gerektiğidir. Ayrıca lsof’un bazı sistemlerde kurulumu ayrı paket olarak gerektirebilir; yum/dnf veya apt üzerinden eklenebilir.

Sonuç olarak, lsof açık dosya yönetimini merkezileştiren güçlü bir gözlem aracıdır. Farklı filtrelerle ihtiyaca göre çıktıyı daraltıp net, aksiyona dönüştürülebilir bilgiler elde etmek mümkün olur. Bu araçla elde edilen çıktılardan hangi durumlarda hangi adımı atmak gerektiğine dair tecrübelerinizi paylaşmanız için kapanış cümlesi talebi dikkate alınmadan, konuyu netçe bitirmek istedim.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi