2013年02月21日

/etc/ユーザー、グループ系


稼働しているサーバの中身を覗く機会というのはなかなか無いので

研究室のサーバを覗かせてもらった。

ユーザー数は50くらいのローカルネットワーク。

といっても研究室のOBさんのユーザーは稼働していないので

稼働しているユーザは20くらい?

2台の計算機とめちゃくちゃ大きくて重い非常用電池が複雑に絡み合ってる。

研究室サーバが稼働している主な機能は

euler:
あたかもローカルディレクトリのごとくリモートホストのディレクトリを覗くことができる。
研究の大事なファイルを非常時に備えるためのバックアップに使ってる。

postfix (mailDir方式):
メールサーバ。

apache:
Web(http)公開のためのサーバ。


の三つが主っぽい。

といってもsudo権限ないので大したもの覗けない。

普段一人でPCをぽちぽち弄ることしかできない自分は今回

ユーザーとかグループとかその辺を覗かせてもらう。

ユーザーとグループの役割


検索しても厳密な役割が出て来なかった。

個人的な感覚だけど

ユーザーは単なる名前でしかなくて

グループはファイルやディレクトリの権限を与えるものという感じ。

例えば、matsukiというユーザー名があったとき

まずmatsukiというグループを作ってそれに所属させる必要がある。
(デフォルトで所属される)

matsukiユーザーが作ったファイルとディレクトリの権限はmatsukiグループによって管理される。
(「ユーザー名」にはファイルとディレクトリの権限を管理する機能はない)

こういったグループをプライマリグループ(GID)と呼ぶらしい。

例えば、

あるファイルBC.txtをBob君とCarl君の二人だけがいじれるようにしたいとなったら

名前は何でもいいけど、ここではfriendsというグループを作りBob君とCarl君のグループにfriendsを追加し

ファイルBC.txtをいじれるグループ権限をfriendsに指定してあげればよい。

この設定が終わった時、Bob君はBobというグループと、friendsというグループに所属し、Carl君もほぼ同様。

こういったfriendsのようなグループをサブグループというらしい。


複数のユーザーを管理者(admin)にしたい場合、adminというサブグループを作り、

adminは管理者権限を持った操作ができるグループであることを設定してやればいい。

管理者にしたい各ユーザーのユーザー名をadminというサブグループに入れてやればいい。

ユーザーやグループ関連のファイル


/etc/以下に存在する関連のありそうなファイルをリストアップ

/etc/passwd  //ユーザー名のデータ
/etc/shadow  //ユーザー、グループのパスワード
/etc/group   //グループのデータ
/etc/sudoers  //sudoできるグループの管理


/etc/passwd


/etc/passwdの読み方を確認。


$ grep "h_matsuki" /etc/passwd
h_matsuki:x:515:515:Matsuki Hajime:/home/h_matsuki/:/bin/bash


左から、ユーザー名(h_matsuki)、パスワード(xの場合、/etc/shadowに隠してある)、ユーザーID(515)、プライマリグループID(515)、コメント(Matsuki Hajime)、ホームディレクトリ(/home/h_matsuki/)、使用するシェル(/bin/bash)

/etc/group


/etc/groupの読み方の確認

$ grep "friends" /etc/passwd
friends:x:500:Bob,Carl


左から、グループ名(friends)、パスワード(xの場合/etc/shadowに隠してある)、グループID(500)、所属しているメンバー名


グループの作成


以下が一例

$ sudo groupadd -g 500 -p pass friends


groupaddコマンドで、

「-g 500」はグループIDで500を指定し、「-p pass」はパスワードにpasswdを指定したfriendsというグループを作成する。


グループへユーザーを追加


以下が一例

$ sudo gpasswd -a Bob friends


gpasswdコマンドを使って

ユーザーBobをグループfriendsに追加。


ファイルディレクトリのグループを変更


以下が一例

$ sudo chgrp friends BC.txt


chgrpコマンドを使って

BC.txtをグループfriendsに所属させる。


sudoのできるグループの作成


adminというグループに所属するメンバーにsudo権限を与える。

/etc/sudoerのファイルに以下を貼り付け

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL


雑感


この辺は実際にサーバー管理をしないと使う機会ないなと思う。

より細かいオプションなんかは以下の参考がとても分かりやすいです。

参考
http://d.hatena.ne.jp/oknknic/20110819/1313775711 (oknknicの日記)
http://kazmax.zpp.jp/linux_beginner/useradd.html (kazmax.zpp.jp)





この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。