_SECURE_PATH(3) FreeBSD ライブラリ関数マニュアル _SECURE_PATH(3)
名称
_secure_path − ファイルが安全であるように見えるかどうかを判定する |
ライブラリ
システムユーティリティライブラリ (libutil, −lutil) |
書式
#include <sys/types.h> int |
_secure_path(const char *path, uid_t uid, gid_t gid); |
解説 |
この関数は、指定のパスについて基本的なセキュリティチェックを行います。こ れは root 特権で実行中のプロセスが使用することを意図しています。指定の ファイルの内容を信頼するかどうかを判定するためです。この関数は、システム の危険性を検出するために使用される方法としてよく使われます。ファイルは、 次の条件を満たす場合に ‘安全である’ と考えられます。 |
1. ファイルが存在し、それが通常のファイルである (シンボリックリンク、ファイル、デバイスに固有のファイル、または名前付きのパイプファイルでない)。
2. 誰もが書き込み可能な属性を持っていない。 3. uid が -1 でない場合は、指定された uid または uid 0 のユーザによって 所有されている。 4. グループの書き込み属性がない、または gid が -1 でない場合は指定の gid によるグループ所有権がある。 戻り値 |
この関数は、ファイルが存在し、安全であると考えられる場合は 0 を返します。 ファイルが存在しない場合は -2 を返します。セキュリティ障害を示す場合には -1 を返します。 syslog(3) が、この関数の処理失敗を理由を含めて LOG_ERR 優 先順位のログに記入するために使用されます。 |
バグ
実行されるチェックは基本的なものであり、この関数の使用と参照ファイルへの アクセスの間の競争状況を除去しようとする試みは行われません。 |
関連項目
歴史
この関数の由来であるコードは、Berkeley Software Design,Inc. によって FreeBSD プロジェクトに寄与されたものです。 FreeBSD 10.0 May 2, 1997 FreeBSD 10.0 |