Linux グループ一覧の確認と/etc/group ファイル
このLinux OSには、どんなグループがあるのか。
グループの一覧を見たい場合があります。 これは、/etc/groupファイルを確認する事で解決します。
Last Update : 2008年08月28日
Linux グループ一覧の確認と/etc/group ファイル 項目
1. /etc/group ファイルと見方
グループの情報は、/etc/groupファイルで確認する事ができます。
グループ名、グループのパスワード、グループID、サブグループとして所属しているアカウントのリストが記録されています。
/etc/group の中身はこんな感じです。
[hogehoge@localhost ~]$ cat /etc/group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm hoge_group:x:501:hoge_user3,hoge_user2
hoge_group | グループ名 |
x | 「 x 」という文字か、暗号化されたパスワード。「 x 」はシャドウパスワードを使用している事を意味します。 |
501 | グループID( GID ) |
hoge_user3,hoge_user2 | サブグループとして所属しているユーザーアカウントのリスト。カンマ区切り。 |
memo
ユーザーは、複数のグループに所属する事ができます。
ユーザーの基本のグループの事をプライマリグループとか、イニシャルグループといい、 それ以外で所属しているグループの事を、サブグループといいます。
あるユーザーがファイル等を作成した場合、通常、ファイルのグループは、プライマリグループに設定されます。
2. グループにログインする
newgrp コマンドを使用すると指定したグループにログインする事が可能です。
書式
newgrp グループ名
あるグループにログインすると、ログインしたアカウントのプライマリグループがログインしたグループへ変更されます。
ファイル、ディレクトリ等を作成すれば、ログインしたグループの所有物となります。
元々サブグループとして所属しているグループへのログインは、パスワード無しでログインする事が可能です。
所属していないグループへのログインはパスワードが必要で、また、グループにパスワードが設定されていない場合 ログインする事ができません。
[hoge@localhost ~]$ id -a ← id の確認 uid=500(hoge) gid=501(hoge) 所属グループ=501(hoge),503(subgroup) ↑ プライマリグループは「 hoge 」 [hoge@localhost ~]$ newgrp subgroup ← 「 subgroup 」グループへログイン [hoge@localhost ~]$ id -a uid=500(hoge) gid=503(subgroup) 所属グループ=501(hoge),503(subgroup) ↑ プライマリグループが「 subgroup 」に変更。 [hoge@localhost ~]$ touch test.txt [hoge@localhost ~]$ ls -l test.txt -rw-r--r-- 1 hoge subgroup 0 5月 9 00:53 test.txt ↑ 作成したファイルのグループが「 subgroup 」になる。 [hoge@localhost ~]$ exit ← グループからログアウト exit [hoge@kazmax ~]$ id -a uid=500(hoge) gid=501(hoge) 所属グループ=501(hoge),503(subgroup) ↑ プライマリグループは「 hoge 」に戻る
memo
グループのパスワードの設定は、gpasswd コマンドで行います。
書式
gpasswd グループ名
3. /etc/group と /etc/gshadow
/etc/passwd と /etc/shadowの関係と同じです。
/etc/group ファイルは全てのユーザーから読み込み可能となっています。 この為、暗号化されたパスワードの部分も一般ユーザーが見ることができ、パスワードの解析等が行えてしまうようです。
シャドウパスワードが利用されている環境では、グループのパスワードが/etc/gshadow に暗号化され保存されます。 このファイルは、root のリードオンリーなファイルとなっていて、一般ユーザーから読み込みができないようになっている為セキュリティが向上します。
[hogehoge@localhost ~]$ ls -l /etc/gshadow
-r-------- 1 root root 606 5月 9 00:23 /etc/gshadow ← root のリードオンリー
4. /etc/group から、グループ一覧を出力する
/etc/group ファイルからユーザー一覧を出力します。
[hogehoge@localhost ~]$ cut -d: -f1 /etc/group root bin daemon sys adm tty
memo
alias で登録しておくと結構便利です。
listgroupsという名前で登録してみます。
ログインした時から使えるように、ホームディレクトリにある「.bashrc」に以下を追記。
[hogehoge@localhost ~]$ cd
[hogehoge@localhost ~]$ vi .bashrc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias listgroups="cut -d: -f1 /etc/group" ← 追記
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[hogehoge@localhost ~]$ source .bashrc
[hogehoge@localhost ~]$ listgroups
root
bin
daemon
sys
adm
tty
memo
追記 - 2008年8月18日
グループの一覧出力には、「getent」というコマンドに「group」というオプションを指定しても出力できます。 ldapに登録されているグループ等も表示してくれます。
# getent group root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm adm:x:4:root,adm,daemon tty:x:5: disk:x:6:root lp:x:7:daemon,lp