SORU
11 HAZİRAN 2012, PAZARTESİ


Bash oluşturma geçici dosyaları

Objektif olarak daha iyi yollar bash komut dosyaları, geçici dosyaları oluşturmak için vardır?

Ben normalde sadece fikrimi script bittiğinde silinir beri geçici dosya-123 gibi ne gelirse söyleyin. Yaparken herhangi bir dezavantajı bu geçici dosya-123 Olası üzerine dışında geçerli klasör var mı? Ya da orada daha dikkatli bir şekilde geçici bir dosya oluşturma herhangi bir avantaj mı?

CEVAP
11 HAZİRAN 2012, PAZARTESİ


mktemp(1) man sayfasına göre oldukça iyi açıklıyor:

Geleneksel olarak, kabuk betikleri ile programın adını al bir sonek olarak pıd ve geçici bir dosya adı olarak kullanın. Bu tür düzeni öngörülebilir değildir ve yarattığı yarış durumdur adlandırma kazanmak için bir saldırgan için kolay. Daha güvenli, hala düşük olsa da, bir yaklaşım geçici bir dizin aynı adlandırma şeması yapmak. Süre bu geçici bir dosya olmayacak garanti izin vermiyor altüst, hala hizmet saldırının basit bir inkar sağlar. İçin bu işlev yerine kullanılması önerilir sebep.

İşlev benim her zamanki çağırma gibi bir şey

mydir=$(mktemp -dt "$0")

çalışabilir ve güvenli bir şekilde dosyaları sayabilirim geçici dizini okunabilir ve yararlı oluşturur.

Edit: mktemp standart değil, ama birçok platform var. Yukarıdaki komut OS üzerinde bir dizin oluşturur X, ama başarısız olur GNU coreutils' *X*s ile öneki belirtmek için gereken işlev,, mktemp -dt "$0.XXXXXXXXXX" gibi. (Çaktırma, ceving)


Bu arada, geçici dosyaları güvenli oluşturma sadece daha fazla kabuk komut dosyası için önemlidir. Bu python File::Temp ruby Tempfile, vb vardır perl tempfile vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • captainpuppys2000

    captainpuppy

    20 HAZİRAN 2013
  • ImBluecams

    ImBluecams

    25 Kasım 2012