_SECURE_PATH(3) | FreeBSD Library Functions Manual | _SECURE_PATH(3) |
名称
_secure_path — ファイルが安全と思われるかどうか判断するライブラリ
System Utilities Library (libutil, -lutil)書式
#include < sys/types.h>#include < libutil.h>
int
_secure_path( const char *path, uid_t uid, gid_t gid);
解説
この関数は、与えられたパスでいくつかの基本的なセキュリティチェックを行います。それは、与えられたファイルの内容を信頼するべきかどうか決定するために root 特権で実行しているプロセスによって使用されること目的としています。それは、システムのセキュリティ侵害を検出するためにしばしば使用される方法を使用しています。ファイルは、次の条件を満たすなら、‘secure’ (安全) であると見なされます:
- ファイルが存在し、(シンボリックリンク、デバイス特殊、または名前付きパイプ、などでない) 通常ファイルである。
- 書き込み可能ではありません。
- uid が -1 でないなら、与えられた uid または uid 0 によって所有されます。
- グループ書き込み可能でないか、または gid が -1 でないなら、与えられた gid によってグループ所有権がある。
戻り値
関数は、ファイルが存在し、安全であるとみなされるなら、0 を返し、ファイルが存在しないなら、-2 を返し、そうでなければ、セキュリティの障害を示すために -1 を返します。 syslog(3) 関数は、LOG_ERR プライオリティで、理由を含み、この関数のあらゆる失敗をログ記録するために使用されます。歴史
この関数が由来するコードは、Berkeley Software Design, Inc. によって FreeBSD プロジェクトに寄付されました。バグ
行なわれたチェックは、基本的で、この機能の使用と参照されたファイルへのアクセスの間の競合条件を除去する試みは行われません。May 2, 1997 | FreeBSD |