Solaris のシステム管理 (基本編)

ユーザーアカウントの構成要素

次の節では、ユーザーアカウントのそれぞれの構成要素について説明します。

ユーザー (ログイン) 名

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

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

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


注 –

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


ユーザー (ログイン) 名の設定方法の詳しいガイドラインについては、「ユーザー名、ユーザー ID、およびグループ ID を使用するガイドライン」を参照してください。

ユーザー ID 番号

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

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

表 4–3 予約済みの UID 番号

UID 番号 

ユーザー/ログインアカウント 

説明 

0 - 99 

root、daemonbinsys など

Oracle Solaris 用に予約  

100 - 2147483647 

通常のユーザー 

汎用アカウント 

60001 と 65534 

nobody および nobody4

匿名ユーザー 

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) までの数値を割り当てることができます。

ただし、60000 より大きな数値の UID と GID は機能的に完全でなく、多くの Oracle Solaris の機能と互換性がありません。したがって、60000 を超える UID と GID は使わないようにしてください。

次の表では、Oracle Solaris 製品と以前のリリースとの相互運用性に関する問題について説明します。

表 4–4 60000 より大きな数値の UID または GID の相互運用性に関する問題

カテゴリ 

製品またはコマンド 

問題 

NFS 互換性 

SunOS 4.0 NFS ソフトウェアとその互換リリース 

NFS サーバーとクライアントのコードは、大きな UID と GID を 16 ビットに切り捨てます。この状況では、SunOS 4.0 およびその互換リリースが動作しているシステムが、大きな UID と GID を使用している環境で使用されると、セキュリティーの問題が発生する可能性があります。この問題を回避するには、SunOS 4.0 およびその互換リリースが動作しているシステムにパッチをあてる必要があります。 

ネームサービスの互換性 

NIS ネームサービスおよびファイルベースのネームサービス 

60000 より大きな数値の UID を持つユーザーは、Solaris 2.5 (およびその互換リリース) が動作しているシステムでは、ログインしたり、su コマンドを使用したりできますが、そのユーザーの UID と GID は 60001(nobody) に設定されます。

 

NIS+ ネームサービス 

60000 より大きな数値の UID を持つユーザーは、Solaris 2.5 (およびその互換リリース) と NIS+ ネームサービスが動作しているシステムではアクセスが拒否されます。 

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

表 4–5 大きな UID および GID の制限の要約

UID または GID の値 

制限 

60003 以上 

Solaris 2.5 (およびその互換リリース) と NIS ネームサービスまたはファイルネームサービスが動作しているシステムにログインしたユーザーは、nobody の UID および GID を取得します。

65535 以上 

  • Solaris 2.5 (およびその互換リリース) が NFS バージョン 2 ソフトウェアとともに動作しているシステムでは、UID が 16 ビットに切り捨てられるため、セキュリティー上の問題が発生する可能性があります。

  • ユーザーがデフォルトのアーカイブフォーマットで cpio コマンドを使用してファイルをコピーすると、ファイルごとにエラーメッセージが表示されます。そして、UID と GID はアーカイブにおいて nobody に設定されます。

  • x86 システム: ユーザーが SVR3 互換のアプリケーションを実行すると、一部のシステムコールから EOVERFLOW が返される場合があります。

  • x86 システム: ユーザーがマウントされた System V ファイルシステムでファイルまたはディレクトリを作成しようとした場合、System V ファイルシステムは EOVERFLOW エラーを返します。

100000 以上 

ps -l コマンドは最大 5 桁の UID を表示します。したがって、99999 より大きな UID または GID が含まれるときは、出力される列が揃いません。

262144 以上 

ユーザーが 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 つの種類のグループに所属できます。

グループ名の設定方法の詳しいガイドラインについては、「ユーザー名、ユーザー ID、およびグループ ID を使用するガイドライン」を参照してください。

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

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

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

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

ユーザーパスワード

ユーザーを追加するときにそのユーザーのパスワードを指定できます。または、ユーザーが最初にログインするときにパスワードを指定するよう強制できます。

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

ユーザー名は公表されますが、パスワードを知っているのは各ユーザーだけでなければなりません。各ユーザーアカウントには、パスワードを割り当てる必要があります。パスワードには、6 - 8 文字の英数字と特殊文字を組み合わせることができます。

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

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

良いパスワードの例としては次のようなものが考えられます。

次のものは、パスワードに不適当です。

ホームディレクトリ

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

ホームディレクトリは、ユーザーのローカルシステムまたはリモートファイルサーバーのどちらにでも配置できます。どちらの場合も、慣例により、ホームディレクトリは /export/home/username として作成します。大規模なサイトでは、ホームディレクトリをサーバーに格納してください。ホームディレクトリのバックアップおよび復元を簡単にするには、/export/homen ディレクトリごとに別々のファイルシステムを使用してください。たとえば、/export/home1/export/home2 を使用します。

ホームディレクトリが配置される場所に関係なく、ユーザーは通常 /home/username という名前のマウントポイントを介してホームディレクトリにアクセスします。Autofs を使用してホームディレクトリがマウントされていると、どのシステムでも /home マウントポイントの下にディレクトリを作成することは許可されません。Autofs が使用されていると、システムはマウントされている /home を特別なものと認識します。ホームディレクトリを自動マウントする方法については、『Solaris のシステム管理 (ネットワークサービス)』「autofs 管理作業の概要」を参照してください。

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

ネームサービス

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

ユーザーの作業環境

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

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


注 –

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


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

また、役割によるアクセス制御 (RBAC) でユーザーアカウントをカスタマイズする方法もあります。詳細は、『Solaris のシステム管理 (セキュリティサービス)』「役割によるアクセス制御 (概要)」を参照してください。