setgroups コマンド
目的
セッションのプロセス・グループ・セットをリセットします。
構文
setgroups [ - ] [ -a GroupSet ] [ -d GroupSet ] [ -r [ Group ]] [ GroupSet ]
説明
setgroups コマンドは、デフォルトでは現行シェルに関するユーザーの現行グループ・セットおよびプロセス・グループ・セットを表示します。 ユーザーのグループ・セットは、ユーザー・データベース・ファイル内で定義されます。 フラグおよび GroupSet パラメーターを指定すると、このコマンドによって GroupSet パラメーターでリストしたプロセス・グループ・セットがリセットされます。 GroupSet パラメーターは、グループ名をコンマで区切ったリストです。 使用可能なグループは、ユーザー・データベース・ファイル内で定義されます。
また、setgroups コマンドを使用すると、現行グループ・セットについてグループを追加または削除できます。 -r フラグを使用すると、実グループ ID をリセットできます。 Groupset パラメーターを指定してもフラグを指定しなければ、setgroups コマンドによってすべてのグループがリセットされ、リスト内の最初のグループが実グループになります。 setgroups コマンドでは、制御端末のセキュリティー特性は変更されません。
setgroups コマンドを実行すると、現行シェルは常に新規のシェルに置き換えられます。 このコマンドは、正常に実行されるかどうかに関係なくシェルを置き換えます。 したがって、このコマンドはエラー・コードを戻しません。
setgroups -r コマンドは、newgrp コマンドと同じです。
フラグ
| 項目 | 説明 |
|---|---|
| -a GroupSet | GroupSet パラメーターで指定されたグループを、現行セッションに追加します。 新規のセットのグループ数は、NGROUPS_MAX グループ (limits.h ファイルに定義されている値) を超えてはなりません。 実グループ ID は変更されません。 |
| -d GroupSet | GroupSet パラメーターで指定されたグループを、現行セッションから除去します。 実グループが除去されると、現行セットにリストされている次のグループが実グループになります。 |
| -r グループ | 現行プロセスの実グループをリセットします。 Group パラメーターを指定せず、現在の実グループが 1 次グループでない場合、-r フラグは現在の実グループを除去し、実グループを元の 1 次グループにリセットします。 Group パラメーターを指定すると、この動作は newgrp コマンドと同じになります。 |
| - | セッションのグループ・セットを、元のログイン状態に再初期化します。 |
セキュリティー
アクセス制御: このコマンドは、一般ユーザー・プログラムでなければなりません。 このコマンドは、トラステッド・コンピューティング・ベース (TCB) にプログラムとしてインストールされなければなりません。 このコマンドは、 setuid (SUID) ビットが設定されている root ユーザーが所有しなければなりません。
アクセスされるファイル:
| モード | ファイル |
|---|---|
| r | /etc/passwd |
| r | /etc/group |
監査イベントは次のとおりです。
| 項目 | 説明 |
|---|---|
| イベント | 情報 |
| 項目 | 説明 |
|---|---|
| USER_SetGroups | realgroup、 グループ・セット |
例
- ユーザーとしてsah次のように入力すると、現在のグループ・メンバーシップとプロセス・グループ・セットを表示できます。
下記のような出力が表示されます。setgroupssah: user groups = staff,payroll process groups = staff,payroll - 追加するには、finance現行セッションのプロセス・グループに対して、次のように入力します。setgroups -a finance
- 実グループを次のように設定するとします。finance次のように入力します。
これは、finance実際のグループとして このstaffおよびpayrollグループが補足グループ・リストを構成します。setgroups finance,staff,payroll - 削除するには、payroll現行プロセス・グループ・セットからのグループ。次のように入力します。setgroups -d payroll
- プロセス・グループ・セットをデフォルト・セットに戻すには、次のように入力します。setgroups -これによって、現行セッションはログイン直前の元の状態にリセットされます。
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/setgroups | setgroups コマンドが入っています。 |
| /etc/group | 基本グループ属性が入っています。 |
| /etc/passwd | 基本ユーザー属性が入っています。 |