getgroups - システムコールの説明 - Linux コマンド集 一覧表
- 名前
- 書式
- 書式
- 返り値
- エラー
- 注意
- 準拠
- 関連項目
名前
getgroups, setgroups - 補助グループ ID のリストを設定/取得する
書式
#include <sys/types.h>
#include <unistd.h>
int getgroups(int
size
, gid_t
list
[]);
#include <grp.h>
int setgroups(size_t
size
, const gid_t *
list
);
書式
-
getgroups
()
-
(呼び出し元プロセスの) 最大
size
までの補助グループ (supplementary group) ID を
list
に返す。
この関数を呼び出したプロセスの実効グループ ID が、
返されるリストに含まれるかどうかは指定されていない
(つまり、アプリケーションは
getegid
(2)を呼び出し、その結果の値を追加・削除すべきである)。
size
が 0 ならば、
list
は修正されないが、そのプロセスの補助グループ ID の合計数が返される。
-
setgroups
()
-
そのプロセスに補助グループ ID を設定する。
適切な特権 (Linux では
CAP_SETGID
ケーパビリティ (capability)) が必要である。
返り値
-
getgroups
()
-
成功した場合は、補助グループ ID の数を返す。
エラーの場合は -1 を返し
errno
が適切に設定される。
-
setgroups
()
-
成功した場合は 0 が返される。エラーならば -1 が返され、
errno
が適切に設定される。
エラー
-
EFAULT
-
list
が不正なアドレスである。
-
EINVAL
-
setgroups
()で、
size
が
NGROUPS
(Linux 2.0.32 では 32)
より大きい。
getgroups
()の場合
size
が補助グループ ID の数より小さいが 0 でない。
-
EPERM
-
呼び出し元プロセスには
setgroups
()を呼び出すための十分な特権がない。
注意
プロセスは、実効グループ ID に加え、最大 NGROUPS_MAX までの
補助グループ ID を持つことができる。
補助グループ ID のセットは親プロセスから継承されるが、
setgroups
()を使って変更できる。
補助グループ ID の最大数は
sysconf
(3) を使って以下のようにして調べることができる:
long ngroups_max;
ngroups_max = sysconf(_SC_NGROUPS_MAX);
getgroups
()で返される値の最大値は、この方法で得られた値以下になる。
setgroups
()のプロトタイプは
_BSD_SOURCE
を定義した場合にのみ有効になる。
準拠
SVr4, 4.3BSD.
getgroups
()関数は POSIX.1-2001 に準拠している。
setgroups
()は特権を必要とするため、POSIX.1-2001 に従っていない。
関連項目
- Linux Tips 関連記事
- Linux Tips(目次)
- Linux ディストリビューション一覧
- rpm のファイル名にあるi386とかi686とは
- 自分のマシンの情報を調べる
- cron の設定
- ssh の root ログインを禁止する
- ssh を、ユーザ、IPでアクセス制限
- 鍵交換方式によるssh接続
- 鍵交換方式によるssh接続( windowsから )
- 複数ファイル内の文字列を置換して上書き保存する
- あるグループをイニシャルグループとするユーザー一覧出力
- 複数ファイルのファイル名を一括変換する
- 連番ファイルをコマンド一発で作成する
- 中身がランダムなファイルを任意のサイズで作成する
- Linux ユーザーアカウントをロック・アンロックする