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 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
/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
Ö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
/tmp
ayrı bir bölüm veyatmpfs
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:
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.