kazmax - Linux で自宅サーバー

Linux グループ一覧の確認と/etc/group ファイル

このLinux OSには、どんなグループがあるのか。

グループの一覧を見たい場合があります。 これは、/etc/groupファイルを確認する事で解決します。

Last Update : 2008年08月28日

Linux グループ一覧の確認と/etc/group ファイル 項目

  1. /etc/group ファイルと見方
  2. グループにログインする
  3. /etc/group と /etc/gshadow
  4. /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
・・・
Linux 基礎知識 関連記事