Solusi 1:
FHS tidak menyediakan direktori kosong "standar".
Biasanya sistem Linux menyediakan direktori /var/empty
, tetapi direktori ini tidak ditentukan dalam FHS dan mungkin sebenarnya tidak kosong. Sebaliknya, daemon tertentu akan membuat direktori kosong mereka sendiri di sini. Misalnya, openssh menggunakan direktori kosong /var/empty/sshd
untuk pemisahan hak istimewa.
Jika kebutuhan Anda akan direktori kosong bersifat sementara, Anda dapat membuat direktori kosong sendiri, sebagai subdirektori dari /run
atau /tmp
. Jika Anda melakukannya di luar program, Anda dapat menggunakan mktemp -d
untuk ini, atau gunakan mkdtemp(3)
fungsi C di dalam program Anda. Meskipun jika Anda selalu membutuhkan direktori kosong untuk hadir, pertimbangkan untuk membuatnya di bawah /var/empty
seperti yang dilakukan openssh.
Untuk kasus penggunaan ini, buat direktori di bawah /tmp
mungkin yang paling cocok, meskipun dalam praktiknya tidak masalah di mana Anda meletakkannya.
Solusi 2:
Anda dapat menggunakan mktemp -d
untuk membuat direktori sementara kosong baru dengan izin aman, secara default di /tmp/
. Utilitas akan menampilkan jalur direktori baru pada STDOUT
, jadi berguna di shell.
Ini lebih portabel daripada file unit systemd.
Solusi 3:
Pertanyaan Unix ini memiliki beberapa saran untuk membuat direktori "lubang hitam", termasuk sistem file nullfs FUSE.
Solusi 4:
Untuk layanan systemd menyediakan opsi PrivateTmp
untuk membuat /tmp
pribadi dan /var/tmp
direktori yang tidak digunakan bersama oleh proses di luar namespace untuk layanan tersebut dan yang seharusnya kosong (awalnya).
[Service]
ExecStart=...
PrivateTmp=yes