EN JA
GETPEEREID(3)
GETPEEREID(3) FreeBSD Library Functions Manual GETPEEREID(3)

名称

getpeereidUNIX-ドメインピアの有効な信任状を取得する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/types.h>
#include < unistd.h>

int
getpeereid( int s, uid_t *euid, gid_t *egid);

解説

getpeereid() 関数は、 UNIX-ドメインソケットに接続されたピア (相手マシン) の実効ユーザ ID および実効グループ ID を返します。引数 s は、 connect(2) または listen(2) のどちらかが呼び出されるタイプ SOCK_STREAMUNIX-ドメインソケット ( unix(4)) でなければなりません。実効ユーザ ID は、 euid に、および実効グループ ID は、 egid に置かれます。

listen(2) の呼び出し側に返された信任状は、それが connect(2) を呼び出した時にそのピアのものです。 connect(2) の呼び出し側に返された信任状は、それが listen(2) を呼び出した時にそのピアのものです。このメカニズムは、信頼できます。異なる有効な信任状の下で適切なシステムコール (すなわち、 connect(2) または listen(2) のどちらか) を呼ぶことによる場合以外は、そのピアに返された信任状に影響を及ぼす両側のための方法はありません。

このルーチンの 1 つの共通の使用は、 UNIX-ドメインサーバがそのクライアントの信任状を確認することです。同様に、クライアントは、サーバの信任状を確認できます。

実装に関する注

FreeBSD においては、 getpeereid() は、 LOCAL_PEERCRED unix(4) ソケットオプションに関して実装されます。

戻り値

The getpeereid() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

getpeereid() 関数は、次の場合に失敗します:
[ EBADF]
引数 s は、有効な記述子ではありません。
[ ENOTSOCK]
引数 s は、ファイルでソケットではありません。
[ ENOTCONN]
引数 s は、 connect(2) または listen(2) で呼び出されたソケットを参照していません。
[ EINVAL]
引数 s は、タイプ SOCK_STREAM のソケットを参照していないか、カーネルは、無効のデータを返しました。

歴史

getpeereid() 関数は、 FreeBSD 4.6 で登場しました。
July 15, 2001 FreeBSD