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,
/tmpdizini 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ı,
/tmpdizinini genellikletmpfs(RAM tabanlı geçici dosya sistemi) olarak bağlayarak daha hızlı ve geçici hale getirdi. -
Bazı dağıtımlar /var/tmp ile
/tmparasında kullanım süresi farkı getirdi (detay aşağıda). -
Systemd ile birlikte,
/tmpdizini 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
| Özellik | Açıklama |
|---|---|
| Geçici depolama | Uygulamalar çalışma süresince buraya dosya bırakabilir |
| Otomatik temizlenme | Birçok sistemde reboot sonrası otomatik silinir |
| Herkese yazılabilir | Ancak sticky bit sayesinde kullanıcılar birbirlerinin dosyalarını silemez |
| Performans | tmpfs ile RAM’e bağlandığında hızlı erişim sağlar |
Sticky Bit Hakkında:
Bu sayede sadece dosyayı oluşturan kullanıcı (veya root) onu silebilir.
4. /tmp vs /var/tmp
| Dizin | Ömür | Temizleme Zamanı | Amaç |
|---|---|---|---|
/tmp | Kısa süreli | Genellikle her yeniden başlatmada | Anlık geçici işlemler |
/var/tmp | Daha uzun süreli | Haftalarca saklanabilir | Oturumlar 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
/tmpayrı bir bölüm veyatmpfsolarak izole edilmelidir
-
6. Günümüzdeki Kullanım ve Değişimler
-
Systemd ile birlikte:
-
/tmpartık izole edilebilir: Her servis kendi/tmportamına sahip olabilir -
systemd-tmpfilesmekanizması ile/tmpiç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:
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.