Bir uygulamayı yapılandırırken sık sık kullanabilirsiniz
/dev/null Uygulamanın boş bir dosyayı okumasını istiyorsanız yapılandırma dosyası olarak. Ancak, uygulama bir dizindeki dosyaların listesini okursa, bu numarayı kullanamazsınız. Okuması için boş bir dizin vermeniz gerekir.
Merak ediyordum: Linux'un bu tür amaçlar için kullanılabilecek bir varsayılan boş dizini var mı? OpenSSH'nin bir süredir / var / empty olduğunu biliyorum ve elbette boş bir direk yaratabilirim ama belki de FHS bunun için standart bir dizin belirledi?
FHS "standart" boş dizin sağlamaz.
Linux sistemlerinin bir dizin sağlaması yaygındır.
/var/emptyancak bu dizin FHS'de tanımlanmamıştır ve aslında boş bırakılamaz. Bunun yerine, belirli daemonlar kendi boş dizinlerini burada oluşturacaklar. Örneğin, openssh boş dizini kullanır
/var/empty/sshd ayrıcalık ayrımı için.
Boş bir dizine olan ihtiyaç geçici ise, alt dizin olarak kendiniz boş bir dizin oluşturabilirsiniz.
/run veya
/tmp. Bunu programın dışında yapıyorsanız, kullanabilirsiniz
mktemp -d Bunun için veya
mkdtemp(3) C programınızın içinde çalışır. Her ne kadar her zaman Mevcut olmak için boş dizine ihtiyacınız var, altında bir tane oluşturmayı düşünün
/var/empty openssh yaptığı gibi.
Bu kullanım durumu için, altında bir dizin oluşturma
/tmp muhtemelen en iyi uyumdur, ancak pratikte onu koyduğunuz yerden çok önemli değildir.
Kullanabilirsiniz
mktemp -d varsayılan olarak güvenli izinlerle yeni bir boş geçici dizin oluşturmak için
/tmp/. Yardımcı program yeni yönetmenin
STDOUTbu yüzden kabukta faydalıdır.
Zaten bir systemd birim dosyasından daha taşınabilir.
Bu Unix sorusu dahil olmak üzere bir "kara delik" dizini oluşturmak için bazı önerileri vardır nullfs FUSE dosya sistemi.
Hizmetler için systemd seçeneği sağlar
PrivateTmp özel oluşturmak
/tmp ve
/var/tmp Bu hizmetin ad alanı dışındaki işlemler tarafından paylaşılmayan ve boş olması gereken dizinler (başlangıçta).
[Service]
ExecStart=...
PrivateTmp=yes