■ユーザーとグループの管理■
・スーパーユーザーと一般ユーザー
LInuxやCentOSは複数のユーザーが同時に使用可能なマルチユーザーシステムです。必要に応じてユーザーを追加したりすることがあります。また、システムにおいて全ての権限を与えられているスーパーユーザー(root)が存在します。今回はユーザーとグループの管理方法について説明します。
・一時的にスーパーユーザーになってみよう。
※インストール時に設定したパスワードの入力。
スーパーユーザーから一般ユーザーに戻りましょう。
※一般ユーザーに戻ります。
■ユーザーとグループ
・Linuxでは複数のユーザーをまとめたグループという管理単位があります。
ユーザーは少なくとも1つのグループに属しています。ファイルの読み書きやコマンドの実行許可などの属性は、ユーザー単位のほかにグループ単位でも設定できます。では、現在ユーザーが属しているグループを表示してみましょう。
※現在、属しているグループ名が表示されましたね。
一般ユーザーはデフォルトではユーザー名と同じ名前のグループに属しています。これを「プライベートグループ」と呼びます。
安全性を高めるために、初期状態では自分専用のグループであるプライベートグループにのみ属し、グループでファイルを管理するするといった場合、新たなグループを作成してメンバーを参加させます。
尚、スーパーユーザーの場合、プライベートユーザーである「root」以外にいくつかの管理グループに属しています。例を見てみましょう。
■ユーザーIDとグループID
・コンピューターシステム内部ではユーザーは「ユーザーID」、グループは「グループID」というID番号で管理されています。
ユーザーIDやグループIDというものは人間が分かりやすくするためのものなのです。
では、実際に一般ユーザーでコマンドを実行してみてみましょう。
上記のように表示されましたでしょうか?内容は以下の通りです。
uid=ユーザーID
gid=グループID(プライマリグループ=プライベートグループ)プライマリグループとは、複数のグループに属していた場合にデフォルトで使用するグループのことです。
所属グループ=自分が所属する全てのグループが表示されます。
それ以降の表示部分はSElinuxが設定するセキュリティコンテキストになります。
ユーザーID/グループIDの基本的な割り当て
スーパーユーザーのユーザーIDとグループIDはともに「0」です。「1~499」は管理用のIDで主にサーバープログラム用のIDとして使用されます。一般ユーザーの場合500番から順に割り振られていきます。
■ファイルのオーナーと所属グループ
・UNIXのシステムでは全てのファイルやディレクトリに対してオーナー(所有者)と所有グループが決められています
これは全てのファイルやディレクトリのアクセス権限を「所有者」「所有グループ」「その他のユーザー」という単位で設定するためです。
上記のように表示されましたでしょうか?尚、ユーザーが新規のファイルを作成した場合、ファイルのオーナーはそのユーザー自身になります。また、所有グループはユーザーのプライマリグループになります。そのことをファイルのタイムスタンプ(更新日時)を更新する「touch」コマンドで確認してみましょう。
「touch」コマンドを存在しないファイルのパスを引数に実行すると空のファイルが作成されます。次に実行例を示します。
■ユーザーの追加と管理
・システムをインストールしたデフォルトの状態では、スーパーユーザーと一人の一般ユーザーが登録されています
一般ユーザーは必要に応じて追加・登録ができます。ユーザーの追加が必要なのは1台のマシンを複数のユーザーで使用する場合だけではありません。例えば、メールサーバーやファイルサーバーとして使用する場合、予めサービスを利用するユーザーを登録しておかなければならないのです。ユーザーの追加・削除などはコマンドラインでも行えますが、まずはFedoraに標準で用意されているGUI管理ツールである「ユーザ管理ツール」によるユーザーの管理方法を覚えてみましょう。
・ユーザ管理ツールの起動
デスクトップ画面から「システム」⇒「管理」⇒「ユーザーとグループ」を起動しましょう。
次に「編集」⇒「設定」を起動しましょう。
「個人設定」のダイアログが表示されます。その中で「ユーザーとグループの一覧」の「システムユーザーとグループを非表示」のチェックを外します。
・ユーザーを追加する
「ユーザーを追加」ボタンをクリックします。
次に「新規ユーザーの作成」ダイアログで設定を行います。
ここでは、最低限「ユーザー名」「パスワード」を指定します。なお、ユーザー名はシステムのアカウントに使用される名前です。半角のアルファベット及び英数字のみが使用できます。また、パスワードは6文字以上に設定しておきましょう。
参考のために次の表にその他の設定内容を示しておきますので参考にして下さい。
次に「OK」ボタンをクリックすると、ユーザーが登録されます。
・グループの追加
ユーザ管理ツールを使用して新規のグループを追加し、そのグループに指定したユーザーをメンバーに登録する方法です。
・グループの一覧を表示する
グループの一覧を表示するには「グループ」パネルに切り替えます。初期状態では各ユーザーのプライベートグループのみが登録されております。
・新規のグループを追加する
システムに新規のグループを追加するには「グループを追加」ボタンをクリックします。「新規グループの作成」ダイアログが表示されます。
「グループ名」には、作成するグループの名前を入力します。グループIDはデフォルトでは500番から順番に割り振られておりますが、「グループIDを手動で指定する」をチェックすることで自分で指定することができます。
通常、ユーザーのユーザIDとプライベートグループのグループIDは同じにしておいた方が分かりやすいです。そのため、新規のグループを作成する場合は「グループIDを手動で指定」をチェックして、例えば1000番以降のIDを設定しておく方がよいでしょう。ただし自分でグループIDを設定する場合には、グループIDが重複しないように注意する必要がありますので、気を付けましょう。
「OK」ボタンをクリックするとグループが作成されます。この状態ではグループにメンバーは登録されていません。
・グループにメンバーを登録する
追加したグループにメンバーを登録するには、ユーザ管理ツールの「グループ」パネルで目的のグループを選択して「プロパティ」ボタンをクリックします。「グループプロパティ」ダイアログが表示されますので「グループユーザ」パネルでユーザーを選択し「OK」ボタンをクリックします。この場合、システムユーザの表示/非表示にかかわらず、リストには常にシステムユーザーも表示されるので注意して選択してください。
別の方法としては、ユーザーごとに参加するグループを設定することもできます。この場合、ユーザ管理システムの「ユーザ」パネルでユーザ名を選択して「プロパティ」ボタンをクリックします。すると「ユーザープロパティ」ダイアログが表示されますので「グループ」パネルでグループを選択します。
■コマンドラインでユーザーの管理
・新規ユーザーを追加するには一時的にスーパーユーザーに変更しなければなりません。
GUIの管理ツールでユーザーを追加した場合と同様に、ホームディレクトリが自動的に作成されます。では、実際にユーザー「jx」というユーザーを追加してみましょう。
・ユーザーの追加
※スーパーユーザーへ一時的に変更。
※jx(例)というユーザーを追加する。
これで「/etc/skel」ディレクトリから設定ファイルがコピーされました。確認をしてみましょう。
上記のように表示されるはずです。
「useradd」コマンドの主なオプション
・他のユーザーになってみよう
「su」コマンドはスーパーユーザーに限らず、自分以外のユーザーに一時的になるコマンドです。この場合下記のように命令を行います。
スーパーユーザーになる場合と同様に「-」オプションを指定して実行した場合には、ホームディレクトリなどの環境も移行します。例えば、ユーザー「fxsl」になるには次のように行います。
・ユーザーの削除
逆にユーザーを削除したい場合は下記のコマンドを使用します。
※削除したいユーザー名を入力。
・パスワードの設定・変更
「useradd」コマンドで追加した段階ではパスワードが設定されていないためログインできません。ですから、スーパーユーザーでパスワードを設定しなくてはいけません。
「passwd」コマンドの主なオプション
・パスワードの自動生成
推測されにくいパスワードを作成するのはなかなか面倒ですが「expect」パッケージに含まれる「mkpasswd」コマンドを使用するとパスワードとして適当な文字列を自動生成してくれます。「expect」パッケージは初期状態ではインストールされていませんので「ソフトウェアの追加/削除」を使用してインストールしてください。
インストールするパッケージ名は下記の通りです
インストールが完了したら次のコマンドを実行してみましょう。ランダムに自動生成してくれます。
「mkpasswd」ではランダムに組み合わせた英数字を表示してくれます。また、オプションで「-l」の次に桁数を入れた場合、その桁数に合わせた組み合わせを表示してくれます。
■コマンドラインでグループの管理
・GUIでもグループの管理ができます。
GUIでもグループの管理ができます。ここではコマンドラインでグループを管理してみましょう。ユーザーの管理と同様に一時的にスーパーユーザーにならなくてはなりません。ここでのグループ名は例として「group」とします。
・グループ管理のコマンド一覧
グループをコマンドで管理する一覧です。一応、覚えておきましょう。
・グループを新規で追加
これで「group」というグループが新規に追加されました。
・グループの削除
これで、作成された「group」というグループが削除されました。
・グループのパスワードを設定する
・グループにメンバーを追加する
・グループのメンバーを変更する
最後の「gpasswd -M」コマンドはグループのメンバーを変更するコマンドです。グループにメンバーを追加するわけではないので注意して下さい。ユーザーは「、」(カンマ)で区切って並べます。
※「fxsl」はインストール時に登録したユーザーです。
グループを変更した場合、再起動をしないと反映されません。
・グループIDを変更する
グループIDを変更するのは少し重要ですので覚えておきましょう。初期状態では、一般ユーザーの実グループIDは、ユーザー名と同じ名前のプライベートグループになります。ユーザーは自分の属する任意のグループをプライマリグループとすることができます。
※実際に確認してみました。
所有グループが「group」となっています。
■ユーザーやグループのファイル
・ユーザー管理ツールやコマンドで設定したユーザー情報やグループ情報は次のファイルに書き込まれています。
ユーザ管理ツールや「useradd」などのユーザ管理コマンドで設定したユーザー情報やグループ情報は次の4つのファイルに書き込まれています。
では、実際に上記内容を見てみましょう。
※テキストエディタで「etc/passwd」の内容を参照します。
ファイル内容のの一部を見てみましょう。上記のように表示されます。
ここで覚えていただきたい部分を表示された「jx」を例に説明します。
jx=ユーザー名:x=パスワード:501=ユーザーID:501=プライマリグループのグループID:=フルネーム(コメント):/home/jx=ホームディレクトリ:/bin/bash=ログインシェルのパス
注目していただきたい部分は、パスワードのフィールドが全て「X」になっていることです。「/etc/passwd」は全てのユーザーが閲覧可能なファイルです。
実際に確認してみましょう。
その他のユーザーの部分が「r」になっている為、暗号化されているとはいえ、クラッキングの対象になりかねません。そのために最近では安全なシャドウパスワードという仕組みを採用しています。このパスワード情報はスーパーユーザーのみが閲覧可能になっています。
・シャドウパスワード
シャドウパスワードを採用したシステムでは、パスワードやアカウントの有効期限などの情報は「/etc/shadow」の格納されています。このファイルはスーパーユーザーのみに読むことが可能で、一般ユーザーは中身を見ることができません。
パスワードが「*」になっているユーザーはログインが禁止されているユーザーです。また「!!」はパスワードが設定されていないユーザーです。
ユーザー「jx」のパスワード「$6$」から始まる暗号方式については下記に説明いたします。
Fedoraにはユーザ管理ツールやネットワーク設定ツールなど多くのGUI設定ツールが用意されております。最近ではWebブラウザから設定できるGUIツールが注目されております。その代表的なものは「Webmin」というものです。「Webmin」を使用すると、ユーザー管理、ネットワーク設定、サーバー管理などのシステム管理のほとんどがWebブラウザによって行えます。「Webmin」は多くのUNIX系OS上で動作します。したがってFedoraやCentOS、Mac OS Xでも同じインターフェイスで設定が行えるという利点があります。また、ネットワーク上の別のマシンからも設定を行うことも可能です。
「Webmin」オフィシャルサイト(http://www.webmin.com)にはRed Had Linux/Fedora用のRPMパッケージが用意されておりますのでインストールは簡単です。ダウンロードページからパッケージをダウンロードしたら、rpmコマンドでインストールします。
・グループ情報
グループの情報を閲覧してみましょう。
※group1=グループ名:x=パスワード:1001=ユーザーID:fxsl,jx=所属するユーザーリスト
■オーナーと所有グループの変更
・オーナーと所有グループを変更してみましょう
新規ファイルを作成した状態では、ファイルのオーナーは作成したユーザー、所有グループはファイルを作成したユーザーのプライマリグループになっています。ファイルやディレクトリを変更してみましょう。変更できるのはスーパーユーザーのみです。
「sample.txt」のオーナーを「fxsl」から「jx」へ変更してみましょう。
※現在のオーナー(所有者)を確認してみましょう。
※ファイルのオーナー(所有者)を「jx」へ変更。
・所有グループの変更
「test」というディレクトリを作成した後に所有グループを変更してみましょう。
※「test」の所有グループを「group」へ変更。
所有グループが「group」へ変更されました。
・スーパーユーザーと一般ユーザー
LInuxやCentOSは複数のユーザーが同時に使用可能なマルチユーザーシステムです。必要に応じてユーザーを追加したりすることがあります。また、システムにおいて全ての権限を与えられているスーパーユーザー(root)が存在します。今回はユーザーとグループの管理方法について説明します。
・一時的にスーパーユーザーになってみよう。
|
スーパーユーザーから一般ユーザーに戻りましょう。
※一般ユーザーに戻ります。
■ユーザーとグループ
・Linuxでは複数のユーザーをまとめたグループという管理単位があります。
ユーザーは少なくとも1つのグループに属しています。ファイルの読み書きやコマンドの実行許可などの属性は、ユーザー単位のほかにグループ単位でも設定できます。では、現在ユーザーが属しているグループを表示してみましょう。
|
一般ユーザーはデフォルトではユーザー名と同じ名前のグループに属しています。これを「プライベートグループ」と呼びます。
安全性を高めるために、初期状態では自分専用のグループであるプライベートグループにのみ属し、グループでファイルを管理するするといった場合、新たなグループを作成してメンバーを参加させます。
尚、スーパーユーザーの場合、プライベートユーザーである「root」以外にいくつかの管理グループに属しています。例を見てみましょう。
|
■ユーザーIDとグループID
・コンピューターシステム内部ではユーザーは「ユーザーID」、グループは「グループID」というID番号で管理されています。
ユーザーIDやグループIDというものは人間が分かりやすくするためのものなのです。
では、実際に一般ユーザーでコマンドを実行してみてみましょう。
|
上記のように表示されましたでしょうか?内容は以下の通りです。
uid=ユーザーID
gid=グループID(プライマリグループ=プライベートグループ)プライマリグループとは、複数のグループに属していた場合にデフォルトで使用するグループのことです。
所属グループ=自分が所属する全てのグループが表示されます。
それ以降の表示部分はSElinuxが設定するセキュリティコンテキストになります。
ユーザーID/グループIDの基本的な割り当て
|
■ファイルのオーナーと所属グループ
・UNIXのシステムでは全てのファイルやディレクトリに対してオーナー(所有者)と所有グループが決められています
これは全てのファイルやディレクトリのアクセス権限を「所有者」「所有グループ」「その他のユーザー」という単位で設定するためです。
|
上記のように表示されましたでしょうか?尚、ユーザーが新規のファイルを作成した場合、ファイルのオーナーはそのユーザー自身になります。また、所有グループはユーザーのプライマリグループになります。そのことをファイルのタイムスタンプ(更新日時)を更新する「touch」コマンドで確認してみましょう。
「touch」コマンドを存在しないファイルのパスを引数に実行すると空のファイルが作成されます。次に実行例を示します。
|
■ユーザーの追加と管理
・システムをインストールしたデフォルトの状態では、スーパーユーザーと一人の一般ユーザーが登録されています
一般ユーザーは必要に応じて追加・登録ができます。ユーザーの追加が必要なのは1台のマシンを複数のユーザーで使用する場合だけではありません。例えば、メールサーバーやファイルサーバーとして使用する場合、予めサービスを利用するユーザーを登録しておかなければならないのです。ユーザーの追加・削除などはコマンドラインでも行えますが、まずはFedoraに標準で用意されているGUI管理ツールである「ユーザ管理ツール」によるユーザーの管理方法を覚えてみましょう。
・ユーザ管理ツールの起動
デスクトップ画面から「システム」⇒「管理」⇒「ユーザーとグループ」を起動しましょう。
次に「編集」⇒「設定」を起動しましょう。
「個人設定」のダイアログが表示されます。その中で「ユーザーとグループの一覧」の「システムユーザーとグループを非表示」のチェックを外します。
・ユーザーを追加する
「ユーザーを追加」ボタンをクリックします。
次に「新規ユーザーの作成」ダイアログで設定を行います。
ここでは、最低限「ユーザー名」「パスワード」を指定します。なお、ユーザー名はシステムのアカウントに使用される名前です。半角のアルファベット及び英数字のみが使用できます。また、パスワードは6文字以上に設定しておきましょう。
参考のために次の表にその他の設定内容を示しておきますので参考にして下さい。
次に「OK」ボタンをクリックすると、ユーザーが登録されます。
|
・グループの追加
ユーザ管理ツールを使用して新規のグループを追加し、そのグループに指定したユーザーをメンバーに登録する方法です。
・グループの一覧を表示する
グループの一覧を表示するには「グループ」パネルに切り替えます。初期状態では各ユーザーのプライベートグループのみが登録されております。
・新規のグループを追加する
システムに新規のグループを追加するには「グループを追加」ボタンをクリックします。「新規グループの作成」ダイアログが表示されます。
「グループ名」には、作成するグループの名前を入力します。グループIDはデフォルトでは500番から順番に割り振られておりますが、「グループIDを手動で指定する」をチェックすることで自分で指定することができます。
通常、ユーザーのユーザIDとプライベートグループのグループIDは同じにしておいた方が分かりやすいです。そのため、新規のグループを作成する場合は「グループIDを手動で指定」をチェックして、例えば1000番以降のIDを設定しておく方がよいでしょう。ただし自分でグループIDを設定する場合には、グループIDが重複しないように注意する必要がありますので、気を付けましょう。
「OK」ボタンをクリックするとグループが作成されます。この状態ではグループにメンバーは登録されていません。
・グループにメンバーを登録する
追加したグループにメンバーを登録するには、ユーザ管理ツールの「グループ」パネルで目的のグループを選択して「プロパティ」ボタンをクリックします。「グループプロパティ」ダイアログが表示されますので「グループユーザ」パネルでユーザーを選択し「OK」ボタンをクリックします。この場合、システムユーザの表示/非表示にかかわらず、リストには常にシステムユーザーも表示されるので注意して選択してください。
別の方法としては、ユーザーごとに参加するグループを設定することもできます。この場合、ユーザ管理システムの「ユーザ」パネルでユーザ名を選択して「プロパティ」ボタンをクリックします。すると「ユーザープロパティ」ダイアログが表示されますので「グループ」パネルでグループを選択します。
■コマンドラインでユーザーの管理
・新規ユーザーを追加するには一時的にスーパーユーザーに変更しなければなりません。
GUIの管理ツールでユーザーを追加した場合と同様に、ホームディレクトリが自動的に作成されます。では、実際にユーザー「jx」というユーザーを追加してみましょう。
・ユーザーの追加
|
※jx(例)というユーザーを追加する。
これで「/etc/skel」ディレクトリから設定ファイルがコピーされました。確認をしてみましょう。
上記のように表示されるはずです。
「useradd」コマンドの主なオプション
|
・他のユーザーになってみよう
「su」コマンドはスーパーユーザーに限らず、自分以外のユーザーに一時的になるコマンドです。この場合下記のように命令を行います。
スーパーユーザーになる場合と同様に「-」オプションを指定して実行した場合には、ホームディレクトリなどの環境も移行します。例えば、ユーザー「fxsl」になるには次のように行います。
|
・ユーザーの削除
逆にユーザーを削除したい場合は下記のコマンドを使用します。
|
・パスワードの設定・変更
「useradd」コマンドで追加した段階ではパスワードが設定されていないためログインできません。ですから、スーパーユーザーでパスワードを設定しなくてはいけません。
|
「passwd」コマンドの主なオプション
|
・パスワードの自動生成
推測されにくいパスワードを作成するのはなかなか面倒ですが「expect」パッケージに含まれる「mkpasswd」コマンドを使用するとパスワードとして適当な文字列を自動生成してくれます。「expect」パッケージは初期状態ではインストールされていませんので「ソフトウェアの追加/削除」を使用してインストールしてください。
インストールするパッケージ名は下記の通りです
|
インストールが完了したら次のコマンドを実行してみましょう。ランダムに自動生成してくれます。
|
「mkpasswd」ではランダムに組み合わせた英数字を表示してくれます。また、オプションで「-l」の次に桁数を入れた場合、その桁数に合わせた組み合わせを表示してくれます。
■コマンドラインでグループの管理
・GUIでもグループの管理ができます。
GUIでもグループの管理ができます。ここではコマンドラインでグループを管理してみましょう。ユーザーの管理と同様に一時的にスーパーユーザーにならなくてはなりません。ここでのグループ名は例として「group」とします。
・グループ管理のコマンド一覧
グループをコマンドで管理する一覧です。一応、覚えておきましょう。
|
・グループを新規で追加
|
・グループの削除
| # groupdel group [Enter] |
・グループのパスワードを設定する
|
・グループにメンバーを追加する
|
・グループのメンバーを変更する
最後の「gpasswd -M」コマンドはグループのメンバーを変更するコマンドです。グループにメンバーを追加するわけではないので注意して下さい。ユーザーは「、」(カンマ)で区切って並べます。
|
グループを変更した場合、再起動をしないと反映されません。
・グループIDを変更する
グループIDを変更するのは少し重要ですので覚えておきましょう。初期状態では、一般ユーザーの実グループIDは、ユーザー名と同じ名前のプライベートグループになります。ユーザーは自分の属する任意のグループをプライマリグループとすることができます。
|
所有グループが「group」となっています。
■ユーザーやグループのファイル
・ユーザー管理ツールやコマンドで設定したユーザー情報やグループ情報は次のファイルに書き込まれています。
ユーザ管理ツールや「useradd」などのユーザ管理コマンドで設定したユーザー情報やグループ情報は次の4つのファイルに書き込まれています。
|
では、実際に上記内容を見てみましょう。
|
ファイル内容のの一部を見てみましょう。上記のように表示されます。
ここで覚えていただきたい部分を表示された「jx」を例に説明します。
jx=ユーザー名:x=パスワード:501=ユーザーID:501=プライマリグループのグループID:=フルネーム(コメント):/home/jx=ホームディレクトリ:/bin/bash=ログインシェルのパス
注目していただきたい部分は、パスワードのフィールドが全て「X」になっていることです。「/etc/passwd」は全てのユーザーが閲覧可能なファイルです。
実際に確認してみましょう。
|
その他のユーザーの部分が「r」になっている為、暗号化されているとはいえ、クラッキングの対象になりかねません。そのために最近では安全なシャドウパスワードという仕組みを採用しています。このパスワード情報はスーパーユーザーのみが閲覧可能になっています。
・シャドウパスワード
シャドウパスワードを採用したシステムでは、パスワードやアカウントの有効期限などの情報は「/etc/shadow」の格納されています。このファイルはスーパーユーザーのみに読むことが可能で、一般ユーザーは中身を見ることができません。
|
ユーザー「jx」のパスワード「$6$」から始まる暗号方式については下記に説明いたします。
Fedoraにはユーザ管理ツールやネットワーク設定ツールなど多くのGUI設定ツールが用意されております。最近ではWebブラウザから設定できるGUIツールが注目されております。その代表的なものは「Webmin」というものです。「Webmin」を使用すると、ユーザー管理、ネットワーク設定、サーバー管理などのシステム管理のほとんどがWebブラウザによって行えます。「Webmin」は多くのUNIX系OS上で動作します。したがってFedoraやCentOS、Mac OS Xでも同じインターフェイスで設定が行えるという利点があります。また、ネットワーク上の別のマシンからも設定を行うことも可能です。
「Webmin」オフィシャルサイト(http://www.webmin.com)にはRed Had Linux/Fedora用のRPMパッケージが用意されておりますのでインストールは簡単です。ダウンロードページからパッケージをダウンロードしたら、rpmコマンドでインストールします。
・グループ情報
グループの情報を閲覧してみましょう。
|
■オーナーと所有グループの変更
・オーナーと所有グループを変更してみましょう
新規ファイルを作成した状態では、ファイルのオーナーは作成したユーザー、所有グループはファイルを作成したユーザーのプライマリグループになっています。ファイルやディレクトリを変更してみましょう。変更できるのはスーパーユーザーのみです。
「sample.txt」のオーナーを「fxsl」から「jx」へ変更してみましょう。
|
|
・所有グループの変更
「test」というディレクトリを作成した後に所有グループを変更してみましょう。
|
所有グループが「group」へ変更されました。