other versions
other sections
SETRESUID(2) | Linux Programmer's Manual | SETRESUID(2) |
名前¶
setresuid, setresgid - ユーザやグループの 実、実効、保存 ID を設定する書式¶
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */説明¶
setresuid() は呼び出し元のプロセスの実 (real) ユーザーID、実効 (effective) ユーザーID、 保存 set-user-ID を設定する。 非特権ユーザーのプロセスは、その実 UID、実効 UID、保存 set-user-ID を、 現在の実 UID、現在の実効 UID、現在の保存 set-user-ID のどれかに変更することができる: 特権プロセス (Linux では CAP_SETUID ケーパビリティ (capability) を持つ プロセス) は、実 UID、実効 UID、保存 set-user-ID を任意の値に設定できる。 引き数のどれかが -1 の場合はその値は変更されずに残される。 実 UID、実効 UID、保存 set-user-ID にどんな変更が行われたかに関わらず、 ファイルシステム UID は常に実効 UID (可能であれば変更後の新しい実効 UID) と同じ値に設定される。 全く同じように、 setresgid() は呼び出し元のプロセスの実 GID、実効 GID、保存 set-group-ID を設定する (さらにファイルシステム GID を実効 GID と同じ値に修正する)。 非特権プロセスは同様の制限を受ける。返り値¶
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。エラー¶
- EAGAIN
- uid が現在のユーザー ID と違う値で、 この呼び出しにより ユーザー ID が リソース上限 RLIMIT_NPROC を超えてしまう。
- EPERM
- 呼び出したプロセスが特権を持たないのに ( CAP_SETUID ケーパビリティを持たないのに)、 ID を許されていない値に変更しようとした。
バージョン¶
Linux ではバージョン 2.1.44 より利用可能になった。準拠¶
これらのコールは非標準である。 HP-UX や BSD 系のいくつかにも存在する。注意¶
HP-UX や FreeBSD では <unistd.h> にプロトタイプが存在する。 Linux では、glibc 2.3.2 以降で プロトタイプが提供されている。 元々の Linux の setresuid() と setresgid() システムコールは 16 ビットのグループ ID だけに対応していた。 その後、Linux 2.4 で、32 ビットの ID に対応した setresuid32() と setresgid32() が追加された。 glibc の setresuid() と setresgid() のラッパー関数は カーネルバージョンによるこの違いを吸収している。関連項目¶
getresuid(2), getuid(2), setfsgid(2), setfsuid(2), setreuid(2), setuid(2), capabilities(7), credentials(7)この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-11-22 | Linux |