Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

UNIX(Linux)
入門編

  1. UNIX(Linux)とは
  2. ディストリビューションとは
  3. CentOSとMacOSとCUIについて
  4. 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
  5. ログインとrootユーザーとシャットダウン等について
  6. コマンドの構造と注意点について
  7. ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
  8. 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
  9. ちょっと高度なディレクトリの移動(cd)とパスについて
  10. 『ls』コマンドの応用(1)とドットファイルについて
  11. 『ls』コマンドの応用(2)
  12. タブキーを使った入力補完について
  13. ディレクトリの作成方法(mkdir)について
  14. ファイルの簡易作成(touch)とファイルについて
  15. 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
  1. ファイルとディレクトリの削除(rm)について
  2. ファイルとディレクトリのコピー(cp)について
  3. ファイルとディレクトリの移動と名前変更(mv)について
  4. viエディタとは
  5. viの基本的な使い方(1)
  6. viの基本的な使い方(2)
  7. ターミナル(sshとTera Term)を使ったリモート操作について
  8. ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
  9. ユーザーの概要と確認と追加と切り替え(adduserとsu)について
  10. ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
  11. グループの概要と確認方法(groups)について
  12. グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
  13. パーミッション(権限)について
  14. パーミッションの設定方法(chmodとchown)について
  1. トップページ
  2. UNIX(Linux)入門編 - グループの概要と確認方法(groups)について

グループの概要と確認方法(groups)について

みなさまどーも。

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

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

んで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

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

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

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。