/etc/group 印刷、ネットワーク管理、電子メールなど、システム全体のタスクをサポートするシステム グループのデフォルトのシステム グループ エントリを定義します。これらのグループの多くは、/etc/passwd に対応するエントリがあります。 ファイル。ほとんどの Linux システムは UPG スキームを使用しているため、新しいユーザーが追加されると、/etc/group に新しいエントリが自動的に作成されます。グループ名はユーザー名と同じです。
/etc/group ファイル エントリの解釈
次の図は、デフォルトの /etc/group ファイル エントリの例を示しています。 /etc/group ファイルの各エントリには、4 つのフィールドが含まれています。各フィールドはコロンで区切られます。エントリの形式は次のとおりです:
groupname:group-password:GID:username-list
/etc/group ファイルの各エントリには 4 つのフィールドが含まれます。各フィールドの説明と要件は次のとおりです。
フィールド | 目的 |
---|---|
グループ名 | グループに割り当てられた名前が含まれます。 |
グループパスワード (x) | このフィールドの x は、シャドウ パスワードが使用されていることを示します。 |
GID | グループの GID 番号が含まれます。 |
ユーザー名リスト | グループのメンバーであるユーザーのリスト |
各グループには複数のユーザーを含めることができます。ユーザーは複数のグループに所属することもできます。 /etc/passwd のユーザーのエントリに保存されている GID ユーザーのプライマリ グループです。
グループ アカウントの管理
1. groupadd コマンドを使用して、グループ アカウントを追加します:
# groupadd [options] group_name
例:ユーザー (tom) をグループ (students) に追加するには:
# gpasswd –a tom students
2. groupmod コマンドを使用して、グループ アカウントを変更します:
# groupmod [options] group_name
3. gpasswd コマンドを使用して、グループ アカウントを管理します。
# gpasswd [options] group_name
4. groupdel コマンドを使用して、グループ アカウントを削除します。構文は次のとおりです。
# groupdel group_name
グループにメンバーがいる場合でも、グループを削除できます。既存のユーザーのプライマリ グループを削除することはできません。グループを削除する前に、ユーザーを削除する必要があります。
5. gpasswd コマンドを使用して、/etc/group および /etc/gshadow を管理します。すべてのグループは、管理者、メンバー、およびパスワードを持つことができます。構文は次のとおりです:
# gpasswd [options] group_name
グループ コマンド
groups コマンドは、ユーザーが属するグループを表示します。次の例は、ユーザー oracle が oracle (プライマリ グループ) と students (セカンダリ グループ) の 2 つのグループに属していることを示しています。
# grep oracle /etc/passwd oracle:x:1000:1000:Oracle DBA:/home/oracle/bin/bash
# grep oracle /etc/group oracle:x:1000: students:x:1056:student1,student2,oracle
groups コマンド (oracle としてログオン) は、これらのグループ メンバーシップを確認します。
$ whoami oracle $ groups oracle students
newgrp コマンド
newgrp コマンドは新しいシェルを実行し、ユーザーの実際のグループ ID を変更します。次の例は、コマンドの実行前と実行後のグループ ID を示しています。また、新しいシェルが実行されることも示しています。
$ id uid=1000(oracle) gid=1000(oracle) groups=1000(oracle),1066(students)...
gid は 1000 (オラクル) に等しいことに注意してください。
$ ps PID TTY TIME CMD 20279 pts/0 00:00:00 bash 20411 pts/0 00:00:00 ps
$ newgrp students
$ id uid=1000(oracle) gid=1066(students) groups=1000(oracle),1066(students)...
gid が 1066 (学生) になっていることに注意してください。また、新しいシェルが実行されたことにも注意してください:
$ ps PID TTY TIME CMD 20279 pts/0 00:00:00 bash 20464 pts/0 00:00:00 bash 20486 pts/0 00:00:00 ps注意 :newgrp コマンドはグループ ID 番号を認識せず、実際のグループ名は自分がメンバーになっているグループにしか変更できません。引数なしでコマンドを実行すると、実際のグループ ID がユーザーのプライマリ グループに設定されます。