/tmp

 

Bu dizin, sistemin hem işleyişinde hem de uygulamaların çalışma sürecinde hayati rol oynar ama aynı zamanda dikkatle yönetilmesi gereken bir alandır.


Linux’ta /tmp Dizini: Tarihi ve Gelişimi


1. /tmp Nedir, Ne İşe Yarar?

  • /tmp, hem sistem hem de kullanıcı süreçleri tarafından kullanılan geçici dosyaların saklandığı dizindir.

  • Uygulamalar çalışırken geçici veriler, ara çıktılar, socket dosyaları, kilit dosyaları gibi birçok dosya burada oluşturulur.

  • Genel özellik:

    • Geçici (kısa ömürlü) kullanım

    • Herkese yazılabilir, ama dizin korumalıdır (sticky bit)

    • Yeniden başlatmayla birlikte temizlenebilir


2. Tarihi Gelişim

Erken UNIX Sistemleri (1970’ler - 1980’ler)
  • İlk Unix sistemlerinde /tmp, kullanıcıların veya süreçlerin kısa süreliğine dosya oluşturabileceği ortak alan olarak tanıtıldı.

  • Geliştiriciler uygulamalarının geçici ihtiyaçları için burayı kullanmaya başladı: derleyicilerin derleme çıktıları, düzenleyicilerin geçici yedekleri, vb.

BSD / System V ve Sonrası
  • BSD ve System V döneminde, /tmp dizini standartlaşarak tüm Unix sistemlerinin parçası haline geldi.

  • Özellikle System V, init betiklerinin bazıları için geçici dosyaları burada oluşturuyordu.

  • Sticky bit (+t) özelliği tanıtıldı: Herkes dosya oluşturabilir ama sadece sahibi veya root silebilir.

Linux ve Modern Sistemler (1990’lar - günümüz)
  • Linux dağıtımları, /tmp dizinini genellikle tmpfs (RAM tabanlı geçici dosya sistemi) olarak bağlayarak daha hızlı ve geçici hale getirdi.

  • Bazı dağıtımlar /var/tmp ile /tmp arasında kullanım süresi farkı getirdi (detay aşağıda).

  • Systemd ile birlikte, /tmp dizini sistem başlatıldığında otomatik olarak temizlenebilir veya sandbox uygulamaları için izole edilebilir hale geldi.


3. /tmp Özellikleri ve Kullanım Biçimi

ÖzellikAçıklama
Geçici depolamaUygulamalar çalışma süresince buraya dosya bırakabilir
Otomatik temizlenmeBirçok sistemde reboot sonrası otomatik silinir
Herkese yazılabilirAncak sticky bit sayesinde kullanıcılar birbirlerinin dosyalarını silemez
Performanstmpfs ile RAM’e bağlandığında hızlı erişim sağlar

Sticky Bit Hakkında:

bash
ls -ld /tmp drwxrwxrwt 10 root root 4096 May 3 10:15 /tmp ^ | sticky bit (t)

Bu sayede sadece dosyayı oluşturan kullanıcı (veya root) onu silebilir.


4. /tmp vs /var/tmp

DizinÖmürTemizleme ZamanıAmaç
/tmpKısa süreliGenellikle her yeniden başlatmadaAnlık geçici işlemler
/var/tmpDaha uzun süreliHaftalarca saklanabilirOturumlar arası geçici veriler

Örneğin, bir yazılım güncellemesi geçici dosyalarını /var/tmp içinde saklayabilir çünkü işlem birkaç yeniden başlatma sürebilir.


5. Güvenlik Notları

  • /tmp, saldırganların geçici dosyalar üzerinden saldırı yapmaya çalıştığı ilk yerlerden biridir. Örnek: symlink (sembolik bağlantı) saldırıları.

  • Bu nedenle:

    • Sticky bit mutlaka açık olmalı

    • Uygulamalar geçici dosya oluştururken rastgele, benzersiz isimler kullanmalı

    • Gelişmiş sistemlerde /tmp ayrı bir bölüm veya tmpfs olarak izole edilmelidir


6. Günümüzdeki Kullanım ve Değişimler

  • Systemd ile birlikte:

    • /tmp artık izole edilebilir: Her servis kendi /tmp ortamına sahip olabilir

    • systemd-tmpfiles mekanizması ile /tmp içeriği zamanlayarak temizlenebilir

  • Bazı modern sistemler /tmp'yi tamamen RAM’e (tmpfs) bağlayarak hem performans hem de veri kalıcılığı açısından farklılık yaratır:

bash
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)

Sonuç:

  • /tmp, sistemin kısa süreli ihtiyaç duyduğu dosyaların tutulduğu, kritik ama geçici bir dizindir.

  • Tarihsel olarak Unix'ten gelen bir yapı olup, modern sistemlerde güvenlik ve performans gereği izole edilmiştir.

  • Kullanımda dikkatli olunmalı; yetki kontrolleri ve temizleme politikaları doğru yönetilmelidir.