getresuid, getresgid -
実、実効、保存、ユーザー
ID / グループ ID
を取得する
#define _GNU_SOURCE /*
feature_test_macros(7) 参照 */
#include <unistd.h>
int getresuid(uid_t *ruid, uid_t *euid, uid_t
* suid);
int getresgid(gid_t *rgid, gid_t *egid, gid_t
* sgid);
getresuid()
は、呼び出したプロセスの実
(real) UID、実効 (effective) UID、 保存
(saved) set-user-ID (
getresgid
の場合はグループ ID)
を、 それぞれ引数
ruid,
euid,
suid
に格納して返す。
getresgid()
は、呼び出したプロセスのグループ
ID
について同様の処理を行う。
成功した場合は 0
が返される。エラーの場合は
-1 が返され、
errno
が適切に設定される。
- EFAULT
- 指定した引数のどれかが、呼び出したプログラムのアドレス空間の外の
アドレスである。
これらのシステムコールはカーネル
2.1.44 から Linux に登場した。
プロトタイプ宣言は 2.3.2
以降の glibc では
_GNU_SOURCE
を定義していると得られる。
これらのコールは非標準である。
HP-UX や BSD
系のいくつかにも存在する。
元々の Linux の
getresuid() と
getresgid()
システムコールは 16
ビットのグループ ID
だけに対応していた。
その後、Linux 2.4 で、32
ビットの ID に対応した
getresuid32() と
getresgid32()
が追加された。 glibc の
getresuid() と
getresgid()
のラッパー関数は
カーネルバージョンによるこの違いを吸収している。
getuid(2),
setresuid(2),
setreuid(2),
setuid(2),
credentials(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。