スポンサーリンク

_SECURE_PATH(3) FreeBSD ライブラリ関数マニュアル _SECURE_PATH(3)

名称

_secure_path − ファイルが安全であるように見えるかどうかを判定する

ライブラリ

システムユーティリティライブラリ (libutil, −lutil)

書式

#include <sys/types.h>
#include <libutil.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 優 先順位のログに記入するために使用されます。

バグ

実行されるチェックは基本的なものであり、この関数の使用と参照ファイルへの アクセスの間の競争状況を除去しようとする試みは行われません。

関連項目

lstat(2), syslog(3)

歴史

この関数の由来であるコードは、Berkeley Software Design,Inc. によって FreeBSD プロジェクトに寄与されたものです。

FreeBSD 10.0 May 2, 1997 FreeBSD 10.0

スポンサーリンク