Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

UNIX(Linux)
Beginner

  1. What is UNIX (Linux)? - Japanese Only
  2. What are Distributions? - Japanese Only
  3. About CentOS, macOS, and CUI - Japanese Only
  4. Installing CentOS with Virtualization Software and macOS CUI Environment - Japanese Only
  5. Login, root User, and Shutdown - Japanese Only
  6. Command Structure and Important Notes - Japanese Only
  7. File System and Navigating Directories (cd and pwd) - Japanese Only
  8. Key Directories and Listing Contents (ls) - Japanese Only
  9. Advanced Directory Navigation (cd) and Paths - Japanese Only
  10. Advanced ls Command (Part 1) and Dotfiles - Japanese Only
  11. Advanced ls Command (Part 2) - Japanese Only
  12. Tab Completion for Input - Japanese Only
  13. Creating Directories (mkdir) - Japanese Only
  14. Quick File Creation (touch) and About Files - Japanese Only
  15. Standard I/O, Redirection (> and >>), echo, and cat - Japanese Only
  1. Deleting Files and Directories (rm) - Japanese Only
  2. Copying Files and Directories (cp) - Japanese Only
  3. Moving and Renaming Files and Directories (mv) - Japanese Only
  4. What is the vi Editor? - Japanese Only
  5. Basic vi Usage (Part 1) - Japanese Only
  6. Basic vi Usage (Part 2) - Japanese Only
  7. Remote Operations via Terminal (SSH and Tera Term) - Japanese Only
  8. Installing Software (yum and Package Managers) - Japanese Only
  9. User Overview, Verification, Creation, and Switching (adduser and su) - Japanese Only
  10. User Passwords, Deletion, Modification, and sudo (passwd, userdel, usermod) - Japanese Only
  11. About Groups and the groups Command - Japanese Only
  12. Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod) - Japanese Only
  13. About Permissions - Japanese Only
  14. Setting Permissions (chmod and chown) - Japanese Only
  1. Home
  2. UNIX(Linux)Beginner - About Groups and the groups Command

About Groups and the groups Command - Japanese Only

みなさまどーも。

さて続きまして『グループ』についてやっていきましょう。「『グループ』とはなんじゃらほほほい?」という質問に一言で答えるとすると「ユーザーをひとくくりにできるような機能」って感じになりますね。

『グループ』の主な使用用途は次の記事で解説するパーミッション、各データに関するアクセス権とかそういう設定まわりになります。ユーザーだと個人単位になってしまいますがグループを使えば複数人にまとめてどどんとアクセス権を与えたりとか色々できちゃう感じですね。

そしてUNIX系OSの『グループ』に関しては覚えなくてはならない暗黙のルールみたいなものもちょいちょいあるので『グループ』の設定方法とは別にそのあたりも同時にみていきましょう。

まず紹介したいのが「現在はどんな『グループ』があって各ユーザーはどの『グループ』に属しているのか」とかそういう確認部分についてです。

最初に「現在どんなグループが存在しているんだぜー?」って部分は『/etc/group』というテキストファイルを見て確認する形になります。これはこちらの記事で紹介したユーザー一覧を確認する方法と同じノリになりますね。なので以下のように『cat』コマンドくんとかで出力しちゃいましょう。

[root@localhost ~]# cat /etc/group

するとこうなります。以下はCentOSのそこそこ初期状態での内容になりますね。

root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
disk:x:6:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
wheel:x:10:
mail:x:12:mail,postfix
uucp:x:14:
man:x:15:
games:x:20:
gopher:x:30:
video:x:39:
dip:x:40:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
floppy:x:19:
vcsa:x:69:
utmp:x:22:
utempter:x:35:
cdrom:x:11:
tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
fuse:x:499:
sshd:x:74:

ここで「どうやって見ていいのか分からーん!(*'ω'*)」って思っちゃった方も多いと思いますのでいつも通り細かく見ていきましょう。

まずこのファイルはグループ1つに対して1行ごとに分けられており、更にその中で『:』を使って項目が分けられている形になっています。

その中でグループ名が書かれてる部分が一番左側の部分になりますね、なので上から『root』、『bin』、『daemon』あたりがグループ名に該当します。

次の『:』の右側の『x』って部分についてなんですがこれは元々パスワードが書かれていた部分になりますね。なので1990年代あたりのUNIXとかになるとこのファイルを見ただけでパスワードが分かってしまっていたわけなんですが現在では暗号化されているのでこのファイルでの確認は出来ないようになっておりその代替として『x』って書かれてる感じになってます。なのでバシッとシカトしてしまってOKです。

その次の『0』とか『1』とか『499』とか書かれた部分なのですがこれは『グループID』(GID)なんて呼ばれている部分になります。実はUNIX系のOSくんは内部的に『グループ』を数字で管理している形になっておりましてその数字が書いてある感じになりますね。これはユーザーID(UID)と同じようなものなんだなって思って頂ければOKです。

そして最後の右側に注目してみましょう。これは空だったり『bin,daemon』って書いてあったりしているわけなのですがこれは該当するグループに属しているユーザー名が書いてある部分になります。なのでここを見れば現在のグループの使用状況なんてのがさくっと確認できる感じですね。

ただ注意点と致しましてこの『/etc/group』に書かれている内容はOSによって若干違います。CentOSの場合の「グループに属しているユーザー名な部分」は『セカンダリグループ』(サブグループ)のみになりまして『プライマリグループ』(メイングループ)については1ミリも書かれておりません。なので「OSによっては全てが書かれてるわけじゃないんだななな(*´ω`*)」とだけ覚えておいて下さい。

さてここで『プライマリグループ』と『セカンダリグループ』なんていうのが出てきましたのでそちらも合わせて確認していきましょう。

まず『プライマリグループ』も『セカンダリグループ』もどちらも同じ『グループ』なのですが『プライマリグループ』はそのユーザーを生成したときに同時に生成される『グループ』みたいなノリになりまして「各ユーザーは必ず最低1つの『プライマリグループ』に属す事!」なんてルールが設定されています。

なので例えば『test』くんというユーザーを作ったら裏側でこっそり『test』っていう『グループ』が作成されていて『test』くんは自動的に『test』という『グループ』が『プライマリグループ』として設定されているような流れになります。

そして『セカンダリグループ』は複数可なので0個でもいいし沢山でも良いしなんて感じです。『セカンダリグループ』の設定は基本は管理者権限を持った『root』さんで行うって流れになりますね。

こんな感じでちょっとややこしいのですが『プライマリグループ』に関してはあまり意識せず「ユーザーを作ったら自動で生成される『グループ』でそのユーザーはその『グループ』に属する形になるんだな!(*'▽'*)」くらいのノリでOKかなって感じです。

基本的にアクセス権とかをまとめて管理するのに使うってのが『グループ』の主な使い方になりますので重要なのは沢山登録できる『セカンダリグループ』の方になる感じです。なのでなんとなーく覚えておくくらいでOKな情報になりますね。

これまで『/etc/group』を使った確認方法を紹介してきましたがこの『/etc/group』はテキストファイルになっていますよね。

なので好奇心旺盛な方は「『/etc/group』を直接編集したらどうなるのー?(*'▽'*)」と思ったと思いますが実は直接編集して『グループ』を設定しちゃうなんて荒業も余裕で可能だったりします。

ただ『:』でちゃんと区切ったりと文法をしっかり守らないといけないとかUNIX系OSのパスワードは暗号化されていたりしますのでパスワードの設定は別の手順を踏まなければいけないとか色々あったりして少々手間になってしまうので最近だと次の記事で紹介する『グループ』設定用のコマンドとかを使うようにした方が良いかもですね。

まあこの辺は好みでOKなのでもし興味あれば調べてみて下さい。

というわけで『/etc/group』を使った『グループ』の確認方法については以上となります。

ここでちょいと今日の思い出、
「今日のお昼ごはんは何食べたっけ?(*'▽'*)」
とか
「今日も愛しのあの子は可愛かったなー(*'ω'*)」
とか
「そういえば今読んでる解説ってUNIXの解説だっけ?(´・ω・`)」
なんて事を振り返って頂きたいのですがここまで紹介してきた『/etc/group』を使った確認方法って「『グループ』全体を主体とした確認方法」でございまして「各ユーザーごとに設定されている『グループ』の確認方法」ではなかったですよね。

なので今度は各ユーザーを主体とした『グループ』の確認方法についてやっていきましょう。今度は『/etc/group』を『cat』で出力するとかそんな感じではなくちゃんと専用のコマンドが用意されているのでそちらを使うのが一般的な手法となります。その専用コマンドくんの名前は『groups』くんとなります。使い方は以下のような感じです。

[root@localhost ~]# groups
root

こんな感じで何も引数を渡さずに実行すると今のユーザーのグループ情報が出力されます。上記の場合は『root』さんなので『root』さんの情報になっていますね。

特定のユーザーの情報を確認したい場合は以下のように引数に該当ユーザー名を渡してあげればOKです。

[root@localhost ~]# groups test
test : test

この引数は複数同時に渡すことも可能ですので以下のように『root test』とすると『root』さんと『test』くんの情報が同時に出力されます。

[root@localhost ~]# groups root test
root : root
test : test

というわけで『グループ』の概要と確認方法についてはこんな感じになりますね。次の記事では『グループ』の追加とか削除とかその辺について確認していきましょう。

ではこの辺で失礼致します。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .