総合手引 | セクション 1 | English | オプション |
mktemp
がユニークなファイル名を生成することに成功した場合、
ファイルがモード 0600 (
1 回の起動でいくつでも一時ファイルを作ってかまいません。これには、
mktemp ユーティリティは、 シェルスクリプトが安全に一時ファイルを使用するために提供されています。 伝統的に多くのシェルスクリプトが、 プログラム名に pid を付けた名前を一時ファイル名として使用しています。 この種の命名法は予測されうるので、 レース状態となった場合に容易に攻撃者が勝ってしまいます。 より安全、しかしながらまだ劣ったアプローチとして、 同じ命名法でディレクトリを作るというものがあります。 この方法では一時ファイルが壊されないことを保証できますが、 単純なサービス停止攻撃を許してしまいます。 上記のような理由により、 mktemp の使用をお勧めします。
| |
ファイルではなくディレクトリを作成します。 | |
| |
エラーが発生した場合、黙って失敗します。 エラー出力が標準エラーに出力されることが望ましくないスクリプトで有用です。 | |
| |
ファイル名テンプレートを生成するために必要なテンプレートを生成します (与えられた prefix と、設定されている場合には TMPDIR を使用します)。 | |
| |
"安全ではない" モードで操作します。一時ファイルは mktemp が終了する前にアンリンクされます。これは mktemp(3) よりは少しましですが、依然レース状態を引き起こします。 このオプションの使用はお勧めしません。 | |
tempfoo=`basename $0` TMPFILE=`mktemp /tmp/${tempfoo}.XXXXXX` || exit 1 echo "program output" >> $TMPFILE
$TMPDIR を使用する場合には次のようにします:
tempfoo=`basename $0` TMPFILE=`mktemp -t ${tempfoo}` || exit 1 echo "program output" >> $TMPFILE
次の場合、スクリプト自身でエラーをつかまえます。
tempfoo=`basename $0` TMPFILE=`mktemp -q /tmp/${tempfoo}.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file, exiting..." exit 1 fi
MKTEMP (1) | November 20, 1996 |
総合手引 | セクション 1 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | Using Unix is the computing equivalent of listening only to music by David Cassidy | ” |
— Rob Pike |