How to create a temporary file with portable shell in a secure way?

前端 未结 3 657
说谎
说谎 2021-02-14 11:32

I want to create a temporary file in POSIX shell (/bin/sh).

I found out that mktemp(1) doens\'t exist on my AIX box, and according to How port

相关标签:
3条回答
  • 2021-02-14 12:13

    Why not use /dev/random?

    It could be neater with perl but od and awk will do, something like:

    tempfile=XXX-$(od -N4 -tu /dev/random | awk 'NR==1 {print $2} {}')
    
    0 讨论(0)
  • 2021-02-14 12:23

    Got here from google for portable mktemp. My needs are less secure than OP's, so I ended up just using the script's PID:

    tempx=/tmp/mytemp.$$
    
    0 讨论(0)
  • 2021-02-14 12:30

    You didn't exactly define "secure", but one element of it is probably to clean up after yourself.

    trap "rm -f \"$tmpfile\"" 0 1 2 3 15
    

    You can probably man 3 signal to see if there are other signals that should cause your temp file to be erased. Signal zero means "on a clean exit".

    0 讨论(0)
提交回复
热议问题