OSDN Git Service

(split) LDP: Update releases based on LDP 3.52 release
[linuxjm/LDP_man-pages.git] / release / man3 / getenv.3
index 66956d5..2156d04 100644 (file)
@@ -1,6 +1,7 @@
 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
-.\" and Copyright (C) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
+.\" and Copyright (C) 2007, 2012 Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
@@ -20,6 +21,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" References consulted:
 .\"     Linux libc source code
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH GETENV 3 2008\-03\-17 GNU "Linux Programmer's Manual"
+.TH GETENV 3 2012\-08\-14 GNU "Linux Programmer's Manual"
 .SH 名前
-getenv \- 環境変数を得る
+getenv, secure_getenv \- 環境変数を得る
 .SH 書式
 .nf
 \fB#include <stdlib.h>\fP
 .sp
 \fBchar *getenv(const char *\fP\fIname\fP\fB);\fP
+
+\fBchar *secure_getenv(const char *\fP\fIname\fP\fB);\fP
 .fi
+.sp
+.in -4n
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
+.in
+.sp
+\fBsecure_getenv\fP(): _GNU_SOURCE
 .SH 説明
 関数 \fBgetenv\fP()  は、環境リストから名前が \fIname\fP の環境変数を検索し、対応する \fIvalue\fP 文字列へのポインタを返す。
+
+GNU 固有の \fBsecure_getenv\fP() 関数は \fBgetenv\fP() と同様だが、 "secure execution"
+(「安全な実行」) が必要な場合には NULL を返す点が異なる。 "secure execution" が必要となるのは、
+呼び出し元プロセスにより実行されるプログラムがロードされる際に、 以下の条件のいずれか一つが成立する場合である。
+.IP * 3
+プロセスの実効ユーザ ID がプロセスの実ユーザ ID と一致しない場合、またはプロセスの実効グループ ID がプロセスの実グループ ID
+と一致しない場合 (通常、この状況になるのは、 set\-user\-ID プログラムか set\-group\-ID プログラムを実行した場合である)。
+.IP *
+実行ファイルで実効ケーパビリティビットがセットされている場合。
+.IP *
+プロセスの許可ケーパビリティセットが空でない場合。
+.PP
+Linux セキュリティモジュールにより要求された場合にも "secure execution" は必要となる。
+
+\fBsecure_getenv\fP() 関数は、 set\-user\-ID プログラムや set\-group\-ID
+プログラムが実行環境を偶然信用してしまった場合に起こり得る脆弱性を、 汎用ライブラリで回避するために使うことを意図して作られた。
 .SH 返り値
 関数 \fBgetenv\fP()  は、環境における値 value へのポインタを返す。 \fIname\fP にマッチする環境変数が存在しないときには NULL
 を返す。
+.SH バージョン
+\fBsecure_getenv\fP() は glibc 2.17 で初めて登場した。
 .SH 準拠
-SVr4, POSIX.1\-2001, 4.3BSD, C89, C99.
+\fBgetenv\fP(): SVr4, POSIX.1\-2001, 4.3BSD, C89, C99.
+
+\fBsecure_getenv\fP() は GNU による拡張である。
 .SH 注意
 環境リストの文字列は \fIname=value\fP という形式をしている。
 
@@ -58,9 +88,13 @@ SVr4, POSIX.1\-2001, 4.3BSD, C89, C99.
 \fBgetenv\fP()  の実装はリエントラント (再入可能) であることを要求されていない。 \fBgetenv\fP()
 の返り値により参照される文字列は静的に割り当てられてもよく、 文字列の内容は後続の \fBgetenv\fP(), \fBputenv\fP(3),
 \fBsetenv\fP(3), \fBunsetenv\fP(3)  の呼び出しにより変更されることがある。
+
+\fBsecure_getenv\fP() の "secure execution" モードは、 カーネルからユーザ空間に渡される補助ベクトル
+(auxiliary vector) の \fBAT_SECURE\fP フラグにより制御される。
 .SH 関連項目
-\fBclearenv\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3), \fBunsetenv\fP(3), \fBenviron\fP(7)
+\fBclearenv\fP(3), \fBgetauxval\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3), \fBunsetenv\fP(3),
+\fBcapabilities\fP(7), \fBenviron\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。