Oracle® Solaris 11.2 のユーザーアカウントとユーザー環境の管理

印刷ビューの終了

更新: 2014 年 9 月
 
 

ユーザーアカウントのコンポーネント

このセクションでは、ユーザーアカウントのさまざまなコンポーネントについて説明します。

ユーザー (ログイン) 名

ユーザーは、ユーザー名 (ログイン名とも呼ばれる) を使って、適切なアクセス権を持つ自分のシステムとリモートシステムにアクセスできます。作成するユーザーアカウントそれぞれに、ユーザー名を選択しなければなりません。

ユーザー名を探しやすいように、ユーザー名の標準的な割り当て方法を使用することを検討してください。また、ユーザー名はユーザーが覚えやすいものにしてください。単純なスキームの例としては、ユーザーのファーストネームの頭文字とラストネームの最初の 7 文字を使用します。たとえば、John Smith は jsmith になります。このスキームでほかのユーザー名と重複する場合は、ユーザーのファーストネームの頭文字、ミドルネームの頭文字、ラストネームの最初の 6 文字を使用します。たとえば、John Jay Smithjjsmith になります。

    このスキームでさらに重複する場合、ユーザー名の作成には次の方法を検討してください。

  • ファーストネームの頭文字、ミドルネームの頭文字、ユーザーのラストネームの最初の 5 文字を使用する

  • 一意の名前になるまで、1、2、3 などの番号を追加する


注 -  ユーザー名は、システムまたは NIS ドメインに登録されているどのメール別名とも異なるものでなければなりません。そうしないと、メールは実際のユーザーにではなく別名に送られることがあります。

ユーザー (ログイン) 名の設定方法の詳しいガイドラインについては、ユーザー名、ユーザー ID、グループ ID の割り当てのガイドラインを参照してください。

ユーザー ID 番号

ユーザー識別 (UID) 番号は、各ユーザー名に関連付けられます。ユーザーがログインしようとするシステムは、UID 番号によってユーザー名を識別したり、ファイルとディレクトリの所有者をシステムが識別するのにも使用されます。多数の異なるシステム上で、ある個人用にユーザーアカウントを作成する場合は、常に同じユーザー名と ID 番号を使用してください。そうすれば、そのユーザーは、所有権の問題を起こすことなく、システム間で簡単にファイルを移動できます。

UID 番号は、2147483647 以下の整数でなければなりません。UID 番号は、通常のユーザーアカウントと特殊なシステムアカウントに必要です。次の表に、ユーザーアカウントとシステムアカウントに予約されている UID 番号を示します。

表 1-1  予約済みの UID 番号
UID 番号
ユーザー/ログインアカウント
説明
0 – 99
rootdaemonbinsys など
オペレーティングシステムによる使用のために予約済み
100 – 2147483647
通常のユーザー
汎用アカウント
60001 と 65534
nobody および nobody4
NFS 匿名ユーザー
60002
noaccess
信頼できないユーザー

0 - 99 の UID 番号を割り当てないでください。これらの UID は、Oracle Solaris による割り当て用に予約されています。定義により、root には常に UID 0、daemon には UID 1、擬似ユーザー bin には UID 2 が設定されます。また、UID が passwd ファイルの先頭にくるように、uucp ログインや、whottyttytype などの擬似ユーザーログインには低い UID を指定するようにしてください。

UID の設定方法の詳しいガイドラインについては、ユーザー名、ユーザー ID、グループ ID の割り当てのガイドラインを参照してください。

ユーザー (ログイン) 名と同様に、固有の UID 番号を割り当てるスキームを決めてください。企業によっては、従業員に固有の番号を割り当て、管理者がその従業員番号にある番号を加えて固有の UID 番号を作成している場合もあります。

セキュリティー上のリスクを最小限に抑えるため、削除したアカウントの UID を再利用することは避けてください。UID を再利用する必要がある場合は、前のユーザーに設定されている属性の影響を新しいユーザーが受けないように、アカウント情報を完全に削除してください。たとえば、前のユーザーがプリンタの拒否リストに含まれている可能性があります。ただし、そのプリンタへのアクセスの拒否が、新しいユーザーに不適切な場合があります。

大きな数値のユーザー ID とグループ ID の使用

UID とグループ ID (GID) には、符号付き整数の最大値 (つまり 2147483647) までの数値を割り当てることができます。

次の表に、UID と GID の制限事項を示します。

表 1-2  大きな UID および GID の制限のサマリー
UID または GID
制限
262144 以上
ユーザーがデフォルトのアーカイブフォーマットで cpio コマンドを使用してファイルをコピーすると、ファイルごとにエラーメッセージが表示されます。UID と GID はアーカイブで nobody に設定されます。
2097152 以上
ユーザーが cpio コマンドに -H odc を付けた形式または pax -x cpio コマンドを使用してファイルをコピーすると、ファイルごとにエラーメッセージが返されます。UID と GID はアーカイブで nobody に設定されます。
1000000 以上
ユーザーが ar コマンドを使用すると、そのユーザーの UID と GID はアーカイブにおいて nobody に設定されます。
2097152 以上
ユーザーが tar コマンド、cpio -H ustar コマンド、または pax -x tar コマンドを使用すると、そのユーザーの UID と GID は nobody に設定されます。

UNIX グループ

グループとは、ファイルやその他のシステムリソースを共有できるユーザーの集合のことです。たとえば、同じプロジェクトで作業するユーザーはグループを構成することになります。グループは、従来の UNIX グループのことです。

各グループには、名前、グループ識別 (GID) 番号、およびそのグループに属しているユーザー名のリストが必要です。システムは GID 番号によって内部的にグループを識別します。

    ユーザーは次の 2 つの種類のグループに所属できます。

  • プライマリグループ – オペレーティングシステムが、ユーザーによって作成されたファイルに割り当てるグループを指定します。各ユーザーは、1 つのプライマリグループに所属していなければなりません。

  • 補足グループ – ユーザーがさらに所属する 1 つまたは複数のグループを指定します。ユーザーは、最大 1024 個の補足グループに所属できます。

グループ名の設定方法の詳しいガイドラインについては、ユーザー名、ユーザー ID、グループ ID の割り当てのガイドラインを参照してください。

ユーザーのセカンダリグループは、場合によっては重要でないことがあります。たとえば、ファイルの所有権は、プライマリグループだけが反映し、セカンダリグループは反映しません。ただし、アプリケーションによってはユーザーのセカンダリグループが関係することがあります。たとえば、ユーザーは以前の Oracle Solaris リリースで Admintool ソフトウェアを使用するとき sysadmin グループ (グループ 14) のメンバーでなければなりません。ただし、グループ 14 がユーザーの現在のプライマリグループであるかどうかは関係ありません。

groups コマンドは、ユーザーが所属しているグループのリストを表示します。ユーザーは一度に 1 つのプライマリグループにしか所属できません。ただし、ユーザーは、newgrp コマンドを使用して、ユーザーがメンバーであるほかのグループに自分のプライマリグループを一時的に変更できます。

ユーザーアカウントを追加するときは、ユーザーにプライマリグループを割り当てるか、デフォルトグループの staff (グループ 10) を適用する必要があります。プライマリグループは、すでに存在しているものでなければなりません。プライマリグループが存在しない場合は、GID 番号でグループを指定します。リストが長くなりすぎる場合があるため、ユーザー名はプライマリグループに追加されません。ユーザーを新しいセカンダリグループに割り当てる前に、そのグループを作成し、それに GID 番号を割り当てなければなりません。

グループは、システムにとってローカルにすることも、ネームサービスを介して管理することもできます。グループ管理を簡単に行うには、NIS などのネームサービスや LDAP などのディレクトリサービスを使用する必要があります。これらのサービスを使用すると、グループのメンバーを一元管理できます。

ユーザーパスワード

ユーザーを追加するときにそのユーザーのパスワードを指定できます。または、ユーザーが最初にシステムにログインするときにパスワードを指定するよう強制できます。ユーザー名は公開されますが、パスワードは秘密にして、ユーザーのみが知っている必要があります。各ユーザーアカウントには、パスワードを割り当てる必要があります。

    ユーザーのパスワードは、次の構文に準拠している必要があります。

  • パスワードの長さは、/etc/default/password ファイルの PASSLENGTH の値によって定義されます。

    デフォルトのパスワードハッシュ生成アルゴリズムは SHA256 です。その結果、ユーザーパスワードは、以前の Oracle Solaris リリースのように、8 文字に制限がなくなりました。8 文字の制限は、古い crypt_unix (5) アルゴリズムを使用するパスワードのみに適用され、既存の passwd ファイルのエントリと NIS マップとの下位互換性のために残されています。

    新しいパスワードは、パスワードアルゴリズムに許可される最大文字数内で複雑さのルールに一致している必要があります。そのため、crypt_unix アルゴリズムを使用し、20 文字のパスワードを入力した場合、パスワードは先頭 8 文字内で複雑さのルールに一致している必要があります。パスワードアルゴリズムが他のアルゴリズムである場合、入力された完全なパスワード (この例では 20 文字) 内で、複雑さのルールに一致している必要があります。

  • 各パスワードは /etc/default/passwd ファイルに指定されている構成済みの複雑さの制約を満たしている必要があります。

  • 各パスワードは /etc/default/passwd ファイルに指定されている、構成済みの辞書のメンバーでない必要があります。

  • 新しいパスワードは、名前サービスのパスワード履歴に含まれている必要があります。

パスワードルールについては、passwd(1) のマニュアルページで詳しく説明しています。

コンピュータシステムのセキュリティーを強化するには、ユーザーのパスワードを定期的に変更するようにしてください。高いレベルのセキュリティーを確保するには、ユーザーに 6 週間ごとにパスワードを変更するよう要求してください。低いレベルのセキュリティーなら、3 か月に 1 度で十分です。システム管理用のログイン (rootsys など) は、毎月変更するか、root のパスワードを知っている人が退職したり交替したりするたびに変更してください。

コンピュータのセキュリティーが破られる原因の多くは、正当なユーザーのパスワードが解読される場合です。ユーザーについて何か知っているだけで推測できるような固有名詞、名前、ログイン名、パスワードを使わないよう各ユーザーに対して指示してください。

    良いパスワードの例としては次のようなものがあります。

  • フレーズ (beammeup)。

  • フレーズ内の各単語の頭文字だけを集めた、意味のない文字列 。たとえば、SomeWhere Over The RainBow から取った swotrb

  • 文字を数字や記号に代えた単語。たとえば、snoopy の場合 sn00py にします。

    次のようなものは、パスワードに使用しないでください。

  • 自分の名前そのもの、逆読み、飛ばし読みのもの

  • 家族やペットの名前

  • 免許証番号

  • 電話番号

  • 社会保険番号

  • 従業員番号

  • 趣味や興味に関連した単語

  • 季節に関係のある名前 (たとえば 12 月に Santa を使うなど)

  • 辞書にある単語

ホームディレクトリ

ホームディレクトリは、ユーザーが独自のファイルを格納するのに割り当てられるファイルシステムの一部分です。ホームディレクトリに割り当てる領域の量は、ディレクトリがホストされているシステムのサイズ、ユーザーが作成するファイルの種類、ファイルサイズ、および作成されるファイルの数によって異なります。

ホームディレクトリは、ユーザーのローカルシステムまたはリモートファイルサーバーのどちらにでも配置できます。どちらの場合も、慣例により、ホームディレクトリは /export/home/username として作成します。大規模なサイトでは、ホームディレクトリをサーバーに格納してください。/export/home/alice/export/home/bob など、ユーザーごとに個別のファイルシステムを使用します。ユーザーごとに独立したファイルシステムを作成することにより、各ユーザーのニーズに基づいてプロパティーまたは属性を設定できます。

ホームディレクトリが配置される場所に関係なく、ユーザーは通常 /home/username という名前のマウントポイントを介してホームディレクトリにアクセスします。Autofs を使用してホームディレクトリがマウントされていると、どのシステムでも /home マウントポイントの下にディレクトリを作成することは許可されません。Autofs が使用されていると、システムはマウントされている /home を特別なステータスと認識します。ホームディレクトリの自動マウントの詳細は、Oracle Solaris 11.2 でのネットワークファイルシステムの管理 のautofs 管理を参照してください。

ネットワーク上の任意の場所からホームディレクトリを使用するには、/export/home/username ではなく、常に $HOME に応じてホームディレクトリを参照するようにしてください。前者はマシンに固有の指定です。さらに、ユーザーのホームディレクトリで作成されるシンボリックリンクはすべて相対パス (たとえば ../../../x/y/x) を使用する必要があります。こうすることによって、そのリンクはどのシステムにホームディレクトリがマウントされても有効になります。

コマンド行インタフェースを使用して、ユーザーアカウントを作成する場合に、ホームディレクトリを追加する方法の詳細は、ユーザーアカウントの設定のガイドラインを参照してください。

ネームサービス

大規模サイトのユーザーアカウントを管理する場合は、LDAP や NIS などのネームサービスまたはディレクトリサービスの利用を検討することをお勧めします。ネームサービスまたはディレクトリサービスを使うと、ユーザーアカウント情報を各システムの /etc 内のファイルに格納するのではなく、一元管理できます。ユーザーアカウントにネームサービスまたはディレクトリサービスを使用すると、ユーザーの情報をシステムごとに複製しなくても、同じユーザーアカウントのままシステム間を移動できます。ネームサービスまたはディレクトリサービスを利用することにより、ユーザーアカウント情報の一貫性も保証されます。

ユーザーの作業環境

ファイルを作成して格納するホームディレクトリのほかに、ユーザーには仕事をするために必要なツールとリソースにアクセスできる環境が必要です。ユーザーがシステムにログインすると、初期設定ファイルによってユーザーの作業環境が決定されます。これらのファイルは、ユーザーの起動シェルによって定義されますが、起動シェルはリリースによって異なる可能性があります。

ユーザーの作業環境を管理するのに便利な方法として、カスタマイズしたユーザー初期設定ファイル (.bash_profile.bash_login.kshrc.profile など) をユーザーのホームディレクトリに置くという方法があります。


注 -  システム初期設定ファイル (/etc/profile /etc/.login など) を使用してユーザーの作業環境を管理しないでください。これらのファイルはローカルシステムに存在するため、一元管理されません。たとえば、Autofs を使用してネットワーク上の任意のシステムからユーザーのホームディレクトリをマウントした場合、ユーザーがシステム間を移動しても環境が変わらないよう保証するには、各システムでシステム初期設定ファイルを修正しなければならなくなります。

ユーザー初期設定ファイルをユーザー用にカスタマイズする方法の詳細は、ユーザーの作業環境についてを参照してください。