setreuid - システムコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 説明
- 返り値
- エラー
- 注意
- 準拠
- 関連項目
名前
setreuid, setregid - 実 (real) と実効 (effective) ユーザー (グループ) ID を設定する
書式
#include <sys/types.h>
#include <unistd.h>
int setreuid(uid_t
ruid
, uid_t
euid
);
int setregid(gid_t
rgid
, gid_t
egid
);
説明
setreuid
()はカレントプロセスの実 (real) ユーザー ID と
実効 (effective) ユーザー ID を設定する。
実ユーザー ID や実効ユーザー ID に -1 を与えた場合、
システムはその ID を変更しない。
非特権プロセスは実効ユーザー ID を実ユーザー ID または実効ユーザー ID または
保存 set-user-ID にしか設定できない。
POSIX: 非特権プロセスが実ユーザー ID を実ユーザー ID または
実効ユーザー ID または保存実効ユーザーID に設定できるか否かは、
指定されていない。
Linux: 非特権ユーザーは実ユーザー ID を実ユーザー ID または
実効ユーザー ID にしか設定できない。
Linux: 実ユーザーID が設定されたり、実効ユーザーID が前の実ユーザーID と
異った値に設定された場合、保存 set-user-ID には新しい実効ユーザーID の値が
設定される。
これと全く同様に、
setregid
()はカレントプロセスの実グループ ID と実効グループ ID を設定し、
上記の説明で「ユーザー」を「グループ」に読み替えたことが成り立つ。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、
errno
が適切に設定される。
エラー
-
EPERM
-
現在のプロセスに特権がなく
(Linux では
setreuid
()の場合に
CAP_SETUID
ケーパビリティ (capability) がなく、
setregid
()の場合に
CAP_SETGID
ケーパビリティがない)、
以下のいずれでもない変更が指定された:
(i) 実効ユーザー (グループ) ID と実ユーザー (グループ) ID を入れ換える。
(ii) 片方の値を他方に設定する。
(iii) 実効ユーザー (グループ) ID に保存 set-user-ID (保存 set-group-ID)
の値を設定する。
注意
実効ユーザー (グループ) ID を保存ユーザー (グループ) ID に設定することは、
Linux 1.1.37 (1.1.38) から可能になった。
準拠
POSIX.1-2001, 4.3BSD
(
setreuid
()と
setregid
()関数コールは 4.2BSD で登場した)。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする