tmppipe=$(mktemp -u)
mkfifo -m 600 "$tmppipe"
Tidak seperti pembuatan file biasa, yang cenderung dibajak oleh file yang ada atau tautan simbolik, pembuatan pipa nama melalui mkfifoatau fungsi yang mendasarinya membuat file baru di tempat yang ditentukan atau gagal. Sesuatu seperti : >fooini tidak aman karena jika penyerang dapat memprediksi output mktempmaka penyerang dapat membuat file target untuk dirinya sendiri. Tetapi mkfifo fooakan gagal dalam skenario seperti itu.
Jika Anda membutuhkan portabilitas POSIX penuh, mkfifo -m 600 /tmp/myfifoaman terhadap pembajakan tetapi rentan terhadap penolakan layanan; tanpa akses ke generator nama file acak yang kuat, Anda perlu mengatur upaya coba lagi.
Jika Anda tidak peduli dengan masalah keamanan halus di sekitar file sementara, Anda dapat mengikuti aturan sederhana: membuat direktori pribadi, dan menyimpan semuanya di sana.
tmpdir=
cleanup () {
if [ -n "$tmpdir" ] ; then rm -rf "$tmpdir"; fi
if [ -n "$1" ]; then kill -$1 $$; fi
}
tmpdir=$(mktemp -d)
trap 'cleanup' EXIT
trap 'cleanup HUP' HUP
trap 'cleanup TERM' TERM
trap 'cleanup INT' INT
mkfifo "$tmpdir/pipe"