如何以安全的方式创建带有便携式shell的临时文件?

Ste*_*epp 8 shell portability posix temporary-files secure-coding

我想在POSIX shell(/bin/sh)中创建一个临时文件.

我发现mktemp(1)在我的AIX盒存在好好尝试一下,并根据如何便携式是mktemp的(1)?,无论如何,它不是那么便携和/或安全.

那么,我应该使用什么呢?

小智 10

为什么不用/dev/random

它可能与perl更整洁,但od和awk会做的,例如:

tempfile=XXX-$(od -N4 -tu /dev/random | awk 'NR==1 {print $2} {}')
Run Code Online (Sandbox Code Playgroud)

  • 到 `awk` 的管道可以完全避免,因为 `-An` 是可移植的: `tempfile=$(od -An -N4 -tx /dev/urandom); 临时文件=XXX-${临时文件##}` (3认同)