Solaris のシステム管理 (第 1 巻)

パート I ユーザーアカウントとグループの管理

このパートでは、ユーザーとグループの管理方法について説明します。次の章で構成されています。

第 1 章「ユーザーアカウントとグループの管理の概要」

ネットワーク環境でユーザーアカウントとグループを設定する方法について概要を説明します。 

第 2 章「ユーザーアカウントとグループの設定と管理の手順」

ユーザーマネージャとグループマネージャを使用して、ユーザーアカウントとグループを設定する手順について説明します。 

第 1 章 ユーザーアカウントとグループの管理の概要

この章では、ユーザーアカウントとグループを管理するためのガイドラインと計画を説明し、さらに、ネットワーク環境でユーザーアカウントとグループを設定する方法について概要を説明します。また、ユーザーアカウントとグループ情報を格納するファイル、およびユーザーの作業環境のカスタマイズについても説明します。

この章の内容は次のとおりです。

ユーザーアカウントとグループを管理する手順については、第 2 章「ユーザーアカウントとグループの設定と管理の手順」を参照してください。

ユーザーアカウントとグループとは

基本的なシステム管理作業の 1 つに、サイトにおいて各ユーザーにユーザーアカウントを設定することがあります。通常のユーザーアカウントには、ユーザーがシステムにログインして、システムを (root のパスワードを知らなくても) 使用するのに必要な情報が含まれます。ユーザーアカウント情報は、主に次の 4 つで構成されています。

また、ユーザーアカウントを設定するとき、ユーザーをあらかじめ定義されたユーザーグループに追加できます。グループは一般に、 (ファイルまたはディレクトリへのグループアクセス権を使用して) グループ内のユーザーだけがファイルとディレクトリにアクセスできるようにするために使用されます。

たとえば、ごく少数のユーザーだけにアクセスさせたい最高機密のファイルを入れるディレクトリを作成できます。極秘プロジェクトに携わるユーザーを含む topsecret という名前のグループを設定し、そして、最高機密ファイルを topsecret グループに読み取り権を与えて設定します。こうすれば、topsecret グループ内のユーザーだけが、ファイルを読み取ることができます。

ユーザーアカウント管理のガイドライン

次の節では、ユーザーアカウントを作成するガイドラインと計画方法について説明します。

ネームサービス

大規模なサイトでユーザーアカウントを管理する場合、NIS または NIS+ などのネームサービスを使用できます。ネームサービスにより、ユーザーアカウント情報を各システムの /etc 内のファイルに格納するのではなく、1 ヶ所で一貫した管理を行えます。ユーザーアカウントにネームサービスを使用すれば、サイト全体のユーザーアカウント情報をシステムごとに /etc 内のファイルにコピーしなくても、同じユーザーアカウントのままシステム間を移動できます。

ユーザー (ログイン) 名

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

ユーザー名の標準的な作り方を決めておくと便利です。ユーザー名はユーザーが覚えやすいものにしてください。単純な規則の例としては、ユーザーのファーストネームの頭文字とラストネームの最初の 7 文字を使用します。たとえば、Ziggy Ignatz は zignatz になります。他のユーザー名と重複する場合は、ユーザーのファーストネームの頭文字、ミドルネームの頭文字、ラストネームの最初の 6 文字を使用します。たとえば、Ziggy Top Ignatz は ztignatz になります。さらに重複する場合、固有の名前になるまで、ファーストネームの頭文字、ミドルネームの頭文字、ラストネームの最初の 5 文字、および 1、2、3 などの数字を使用できます。


注 -

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


ユーザー ID 番号

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

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

表 1-1 予約済みの UID 番号

ユーザー ID 番号 

ログインアカウント 

説明 

0 - 99  

root、daemonbinsys、など

システムアカウント 

100 - 2147483647 

通常のユーザー 

汎用アカウント 

60001  

nobody

アクセス権のないユーザー 

60002  

noaccess

Solaris 2.0 およびその互換バージョンと SVR4 リリースとの互換性のために提供 

0 から 99 までの UID 番号は予約されていますが、これらの番号でユーザーを追加することはできます。ただし、通常のユーザーアカウントには使用しないでください。システム上の定義により、root には常に UID 0、daemon には UID 1、擬似ユーザー bin には UID 2 が設定されます。また、UID が passwd ファイルの先頭にくるように、uucp ログインや、whottyttytype などの擬似的なユーザーログインには低い UID を与えるようにしてください。

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

セキュリティ上のリスクを最小限に抑えるために、削除したアカウントの UID を再利用することは避けてください。どうしても UID を再利用する必要がある場合、はじめから作りなおして、新しいユーザーが前のユーザーの属性に影響されないようにしてください。たとえば、前のユーザーがプリンタの拒否リストに含まれていたためプリンタにアクセスできなかった場合、その属性を新しいユーザーにも適用するとは限りません。必要な場合には、固有の UID が使い果たされたとき、1 つの NIS+ ドメイン内で重複する UID を使用することができます。

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

以前の Solaris ソフトウェアリリースは、32 ビットのデータ型を使用してユーザー ID (UID) とグループ (GID) を格納していました。ただし、UID と GID に使用できる最大値は 60000 に制限されていました。Solaris 2.5.1 リリースおよびその互換バージョンからは、UID と GID の値の制限は符号付き整数の最大値 (つまり、2147483647) に引き上げられました。

60000 を超える UID と GID は機能的に完全でなく、多くの Solaris の機能と互換性がありません。したがって、60000 を超える UID と GID を使用することは避けてください。Solaris 製品と Solaris コマンドとの相互運用性に関する詳細は、表 1-2 を参照してください。

表 1-2 に、Solaris および Solaris 製品の以前のリリースとの相互運用性に関する問題を説明します。

表 1-2 60000 を超える UID と GID の相互運用性に関する問題

分類 

製品またはコマンド 

問題または注意 

NFSTM 互換性

SunOS 4.0 NFS ソフトウェアおよびその互換バージョン 

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

ネームサービスの相互運用性 

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

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

 

NIS+ ネームサービス 

60000 を超える UID を持つユーザーは、Solaris 2.5 およびその互換バージョンと NIS+ ネームサービスが動作しているシステムではアクセスが拒否される。 

UID と GID の表示 

OpenWindows のファイルマネージャ 

OpenWindowsTM のファイルマネージャを拡張ファイルリスト表示オプションで使用する場合、大きな UID と GID は正しく表示されない。

表 1-3 大きな UID と GID の制限の要約

UID と GID の値 

制限 

60003 以上 

  • この分類のユーザーが、Solaris 2.5 およびそれ以前の互換バージョンと NIS ネームサービスまたはファイルネームサービスが動作しているシステムにログインすると、nobody の UID および GID を取得する。

65535 以上 

  • NFS バージョン 2 ソフトウェアが動作している SunOS 4.0 およびその互換バージョンのシステムでは、この分類の UID は 16 ビットに切り捨てられる。その結果、セキュリティの問題が発生する場合がある。

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

  • SPARC システム: この分類のユーザーが SunOS 4.0 およびその互換バージョンで動作可能なアプリケーションを実行すると、一部のシステムコールから EOVERFLOW が戻されて、そのユーザーの 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 に設定される。

パスワード

ユーザー名は公表されますが、パスワードを知っているのは各ユーザーだけでなければなりません。各ユーザーアカウントには、6 文字から 8 文字の英数字と特殊文字を組み合わせたパスワードを割り当ててください。ユーザーアカウントを作成するときにユーザーのパスワードを設定します。ユーザーは、システムに初めてログインするときにそのパスワードを変更できます。

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

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

次のようなパスワードを選択してください。

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

パスワード有効期限

NIS+ または /etc 内のファイルを使用してユーザーアカウント情報を格納する場合は、ユーザーのパスワードにパスワード有効期限を設定できます。パスワード有効期限の設定により、ユーザーに定期的なパスワード変更を強制したり、あるパスワードを保持するのに必要な最低日数以前にパスワードを変更するのを防止したりできます。不正ユーザーが、古くて使用されていないアカウントを使用して、発覚せずにシステムのアクセス権を得るような場合を防止するために、アカウントが無効になる日付けを設定することができます。

ホームディレクトリ

ホームディレクトリは、ユーザーが専有ファイルを格納するのに割り当てられるファイルシステムの一部分です。ホームディレクトリに割り当てる大きさは、ユーザーが作成するファイルの種類と作業によって異なります。一般的には、各ユーザーのホームディレクトリに少なくとも 15M バイトのディスク空間を割り当ててください。

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

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

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

ユーザーの作業環境

ファイルを作成して格納するホームディレクトリの他に、ユーザーには仕事をするために必要なツールと資源にアクセスできる環境が必要です。ユーザーがシステムにログインするとき、C、Korn、Bourne シェルなどユーザーの起動シェルで定義される初期設定ファイルによって、ユーザーの作業環境が決定されます。

ユーザーの作業環境をうまく管理するには、カスタマイズしたユーザー初期設定ファイル (.login.cshrc.profile) をユーザーのホームディレクトリに提供します。ユーザー初期設定ファイルをユーザー用にカスタマイズする詳細については、「ユーザーの作業環境のカスタマイズ」を参照してください。ユーザー初期設定ファイルをカスタマイズしたあと、新しいユーザーアカウントを作成するときにそれらをユーザーのホームディレクトリに追加できます。

1 回だけ行う作業としてお薦めするのは、「スケルトンディレクトリ」と呼ばれる別々のディレクトリをサーバーに設定することです (ユーザーのホームディレクトリが格納されるのと同じサーバーを使用できます)。スケルトンディレクトリにより、タイプの異なるユーザーに合わせてカスタマイズしたユーザー初期設定ファイルを格納できます。


注 -

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


グループを管理するガイドライン

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

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

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

groups コマンドを使って、ユーザーが所属しているグループを表示できます。ユーザーは一度に 1 つの一次グループにしか所属できません。ただし、自分がそのメンバーである他のグループに (newgrp コマンドで) 一時的に変更することはできます。

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

グループは、システムにとってローカルになるか、またはネームサービスを通して管理することができます。グループ管理を単純化するために、グループメンバーを集中管理できる NIS+ のようなネームサービスを使用してください。

ユーザーアカウントとグループを管理するツール

表 1-4 に、ユーザーとグループを管理する推奨ツールを示します。

表 1-4 ユーザーとグループを管理するための推奨ツール

管理するユーザーとグループの場所 

推奨ツール 

必要なもの 

参照先 

ネットワークに接続されたネームサービス (NIS、NIS+) 環境におけるリモートまたはローカル、またはその両方のシステム 

Solstice TMAdminSuiteTM のユーザーマネージャとグループマネージャ (グラフィカルユーザーインタフェース)

CDE や OpenWindows などの X window が動作しているグラフィックモニター 

Solstice AdminSuite 2.3 管理者ガイド

ローカルシステム 

Admintool (グラフィカルユーザーインタフェース) 

CDE や OpenWindows などの X window が動作しているグラフィックモニター 

第 2 章「ユーザーアカウントとグループの設定と管理の手順」

Solaris の useradd コマンドと groupadd コマンドを使用しても、ローカルシステムのユーザーとグループを設定できます。ただし、これらのコマンドではネームサービスのマップやテーブルを変更できません。表 1-5 で、Solstice AdminSuite または Admintool を使用しない場合に、ユーザーアカウントとグループを管理する Solaris のコマンドについて説明します。

表 1-5 Solaris のコマンドを使用してユーザーアカウントとグループを管理する方法

作業 

使用するネームサービス 

使用するコマンド 

ユーザーアカウントの追加 

NIS+ 

nistbladm

nisclient

 

NIS  

useradd

make

 

なし 

useradd

ユーザーアカウントの変更 

NIS+ 

nistbladm

 

NIS  

usermod

make

 

なし 

usermod

ユーザーアカウントの削除 

NIS+ 

nistbladm

nisclient

 

NIS 

userdel

make

 

なし 

userdel

ユーザーアカウントデフォルトの設定 

NIS+ 

なし 

 

NIS  

useradd -D

make

 

なし 

useradd -D

ユーザーアカウントを無効にする 

NIS+ 

nistbladm

 

NIS  

passwd -r nis -l

make

 

なし 

passwd -f iles -l

ユーザーのパスワードの変更 

NIS+ 

passwd -r nisplus

 

NIS  

passwd -r nis

 

なし 

passwd -r files

ユーザーアカウントのソート 

NIS+ 

niscat

sort

 

NIS  

ypcat

sort

 

なし 

awk

sort

ユーザーアカウントの検索 

NIS+ 

nismatch

 

NIS  

ypmatch

 

なし 

grep

グループの追加 

NIS+ 

nistbladm

 

NIS 

groupadd

make

 

なし 

groupadd

グループ内のユーザーの変更 

NIS+ 

nistbladm

 

NIS  

groupmod

make

 

なし 

groupmod

グループの削除 

NIS+ 

nistbladm

 

NIS  

groupdel

make

 

なし 

groupdel

Admintool の機能

Admintool はローカルシステムでユーザーアカウントを設定できるグラフィカルユーザーインタフェースです。

ユーザーアカウントの変更

既存のものと重複するユーザー名や UID 番号を定義しないかぎり、ユーザーアカウントのログイン名や UID 番号を変更する必要はありません。 2 つのユーザーアカウントが、同じユーザー名または UID 番号を持つ場合、次の手順に従ってください。

ユーザーアカウントの中で変更できる情報に、ユーザーのグループメンバシップがあります。Admintool の「変更 (Modify)」オプションで、ユーザーの二次グループを追加したり、削除したりできます。あるいは、「グループ」ウィンドウを使ってグループのメンバーリストを直接修正したりすることもできます。

ユーザーアカウントの次の部分も変更できます。

ユーザーアカウントの削除

Admintool でユーザーアカウントを削除すると、passwdgroup、ファイル内のエントリが自動的に削除されます。さらに、ユーザーのホームディレクトリにあるファイルを削除し、ユーザーのメールボックスの内容を削除できます。

メールをユーザーのメールボックスに送るよう設定されている 1 つのメール別名だけが削除されます。そのユーザー名は、他のメール別名からは削除されません。メールボックスにメールを送るように設定されている以外のメール別名からエントリを削除したいときは、手作業で削除しなければなりません。

カスタマイズしたユーザー初期設定ファイルの追加

ユーザーマネージャでユーザー初期設定ファイルをカスタマイズして作成することはできませんが、指定された「スケルトン」ディレクトリ内のユーザー初期設定ファイルでユーザーのホームディレクトリを生成することができます。

/etc/skel ディレクトリにあるユーザー初期設定テンプレートをカスタマイズし、それらをユーザーのホームディレクトリへコピーできます。

パスワードの管理

Admintool を使って、次のようにパスワードを管理できます。(1) ユーザーアカウントに通常のパスワードを指定する(2) ユーザーが最初のログイン時にパスワードを作成できるようにする (3) ユーザーアカウントを無効にするかロックする (4) 有効期限とパスワード有効期限情報を指定する


注 -

パスワード有効期限は、NIS ネームサービスではサポートされません。


ユーザーアカウントを無効にする

場合によっては、一時的に、または永久にログインアカウントを無効にしなければならないことがあります。ユーザーアカウントを無効にしたりロックしたりすると、無効なパスワード *LK* がユーザーアカウントに割り当てられ、それ以後ログインできなくなります。

最も簡単にユーザーアカウントを無効にする方法は、Admintool を使用してアカウントのパスワードをロックすることです。また、「有効期限(Expiration Date)」フィールドに有効期限を入力して、ユーザーアカウントの無効期間を設定することができます。

また、パスワード有効期限を設定するか、パスワードを変更しても、ユーザーアカウントを無効にできます。

ユーザーアカウントとグループ情報の格納場所

ユーザーアカウントとグループ情報は、サイトの方針に応じて、ネームサービスかローカルシステムの /etc 内のファイルのどちらかに格納できます。NIS+ ネームサービスでは、情報はテーブルに格納され、NIS ネームサービスではマップに格納されます。


注 -

混乱を避けるために、ユーザーアカウントとグループ情報の位置は、ファイル、テーブル、マップという 3 種類の呼び方ではなく、単にファイルと呼びます。


ほとんどのユーザーアカウント情報は、passwd ファイルに格納されます。ただし、パスワード暗号とパスワード有効期限は、NIS か NIS+ を使用するときは passwd ファイルに、/etc ファイルを使用するときは /etc/shadow ファイルに格納されます。NIS を使用するとき、パスワード有効期限は使用できません。

グループ情報は group ファイルに格納されます。

パスワードファイルのフィールド

passwd ファイルの各フィールドはコロンで区切られ、次のような情報が入っています。

username:パスワード:uid:gid:comment:home-directory:login-shell

具体的な例は次のようになります。

kryten:x:101:100:Kryten Series 4000:/export/home/kryten:/bin/csh

表 1-6 に、passwd ファイルの各フィールドについて説明します。

表 1-6 passwd ファイルのフィールド

フィールド名 

説明 

username

ユーザー (またはログイン) 名。ユーザー名は固有で、 1 から 8 文字の英字 (A-Z、a-z) と数字 (0-9) を使用する。最初の文字は英字で、少なくとも 1 文字は小文字を使用する。ユーザー名には下線や空白文字は使用できない。 

password

暗号化されたパスワードの代わりの x (パスワードフィールドはもう使用されない)。暗号化されたパスワードは shadow ファイルに格納される。

uid

ユーザーをシステムに識別させるユーザー識別番号 (UID)。一般ユーザーの UID は 100 から 60000 までの範囲とする。UID 番号はすべて固有でなければならない。 

gid

ユーザーの一次グループのグループ識別番号 (GID)。各 GID は 0 から 60002 までの範囲の整数でなければならない (60001 と 60002 はそれぞれ nobodynoaccess に割り当てられる)。

comment

通常はユーザーのフルネーム。 (このフィールドはコメントとしての情報専用。) このフィールドは、もともとは、Bell 研究所の UNIX システムから GECOS (General Electric Computer Operating System) を実行するメインフレームにバッチジョブを依頼する場合、必要なログイン情報を保持するために使われていたので、GCOS フィールドと呼ばれることもある。 

home-directory

ユーザーのホームディレクトリのパス名。 

login-shell

ユーザーのデフォルトログインシェル。これは /bin/sh/bin/csh/bin/ksh のどれかになる。表 1-11 のシェル機能の説明を参照のこと。

shadow ファイルのフィールド

shadow ファイルの各フィールドはコロンで区切られ、次のような情報が入っています。

username:password:lastchg:min:max:warn:inactive:expire

具体的な例は次のようになります。

rimmer:86Kg/MNT/dGu.:8882:0::5:20:8978

表 1-7shadow ファイルの各フィールドについて説明します。

表 1-7 shadow ファイルのフィールド

フィールド名 

説明 

username

ユーザー (またはログイン) 名。 

password

次のエントリのいずれかになる。13 文字の暗号化されたユーザーパスワード。アクセス不可能なアカウントを示す *LK*。アカウントのパスワードがないことを示す NP

lastchg

1970 年 1 月 1 日から最後にパスワードを変更した日付までの日数。 

min

パスワードの変更から次の変更までに必要な最少日数。 

max

ユーザーが新しいパスワードの指定をもとめられるまで、パスワードを変更しないで使い続けることができる最長日数。 

inactive

アカウントを使用 (ログイン) しなくてもよい最長日数。 

expire

ユーザーアカウントの有効期限が切れる日付。この日付が過ぎると、ユーザーはシステムにログインできない。

グループファイルのフィールド

group ファイルの各フィールドはコロンで区切られ、次のような情報が入っています。

group-name:group-パスワード:gid:user-list

具体的な例は次のようになります。

bin::2:root,bin,daemon

表 1-8group ファイルの各フィールドについて説明します。

表 1-8 group ファイルの各フィールド

フィールド名 

説明 

group-name

グループに付けられた名前。たとえば、大学の化学部のメンバーであれば chem などと指定する。グループ名に許される最大文字数は 9 文字。

group-パスワード

通常は空のままか、アスタリスクを指定する。グループパスワードフィールドは初期バージョンの UNIX のなごりで、グループにパスワードがある場合、newgrp コマンドはユーザーにグループパスワードを入力するよう求める。ただし、パスワードを設定するユーティリティはない。

gid

グループ GID 番号。ローカルシステムで固有でなければならず、組織全体を通じても固有であることが望ましい。GID 番号は 0 から 60002 までの範囲の整数で指定する。ただし、100 未満の番号はシステムのデフォルトグループアカウント用に予約されている。したがって、ユーザー定義グループの範囲は 100 から 60000 (60001 と 60002 はそれぞれ nobodynoaccess に割り当てられている)。

user-list

カンマで区切られたユーザー名のリスト。ユーザーの二次グループメンバシップを表す。各ユーザーは最高 16 までの二次グループに所属できる。

UNIX ユーザーグループ

すべての Solaris 7 システムに、デフォルトで次のグループがあります。

root::0:root
other::1:
bin::2:root,bin,daemon
sys::3:root,bin,sys,adm
adm::4:root,adm,daemon
uucp::5:root,uucp
mail::6:root
tty::7:root,tty,adm
lp::8:root,lp,adm
nuucp::9:root,nuucp
staff::10:
daemon::12:root,daemon
sysadmin::14:
nobody::60001:
noaccess::60002:
nogroup::65534:

ユーザーの作業環境のカスタマイズ

ユーザーのホームディレクトリの設定には、ユーザーのログインシェルにユーザー初期設定ファイルを提供することも含まれます。ユーザー初期設定ファイルは、ユーザーがシステムにログインしたあとでユーザーのために作業環境を設定するシェルスクリプトです。基本的にシェルスクリプトでできる作業はどれもユーザー初期設定ファイルで実行できますが、その主な仕事は、ユーザーの検索パス、環境変数、ウィンドウ機能の環境などユーザーの作業環境を定義することです。表 1-9 に示すように、各ログインシェルには、1 つまたは複数の、固有のユーザー初期設定ファイルがあります。

表 1-9 Bourne、C、Korn シェルのユーザー初期設定ファイル

シェル 

初期設定ファイル 

目的 

Bourne

$HOME/.profile

ログイン時のユーザー環境の定義 

 

C

$HOME/.cshrc

ログインシェルのあとで起動されるすべての C シェルに対するユーザー環境の定義 

 

$HOME/.login

ログイン時のユーザー環境の定義 

 

Korn

$HOME/.profile

ログイン時のユーザー環境の定義 

 

$HOME/$ENV

Korn シェルの ENV 環境変数によって指定されるファイルでのログイン時のユーザー環境の定義

Solaris システムソフトウェアには、表 1-10 に示すように、各システムの /etc/skel ディレクトリに、各シェル用のデフォルトのユーザー初期設定ファイルが提供されています。

表 1-10 デフォルトのユーザー初期設定ファイル

シェル 

デフォルトファイル 

C

/etc/skel/local.login

 

/etc/skel/local.cshrc

Bourne または Korn

/etc/skel/local.profile

これらのファイルを変更して、すべてのユーザーに共通な作業環境を提供する標準のファイルセットを作成したり、あるいは異なるタイプのユーザーに作業環境を提供したりすることができます。異なるタイプのユーザーにユーザー初期設定ファイルを作成する手順については、「ユーザー初期設定ファイルをカスタマイズする方法」を参照してください。

サイト初期設定ファイルの使用方法

ユーザー初期設定ファイルをカスタマイズするとき、ユーザー初期設定ファイルを管理者とユーザーの両方がカスタマイズできることが重要です。この重要な機能は、サイト初期設定ファイルと呼ばれる、グローバルに配布されるユーザー初期設定ファイルにより実現します。サイト初期設定ファイルを使用して、ユーザーの作業環境に新しい機能を絶えず導入でき、しかもユーザーはユーザー初期設定ファイルをカスタマイズすることもできます。

ユーザー初期設定ファイルでサイト初期設定ファイルを参照するとき、サイト初期設定ファイルに対して行なったすべての更新は、ユーザーがシステムにログインするときかユーザーが新しいシェルを起動するとき自動的に反映されます。サイト初期設定ファイルは、ユーザーを追加したときにはなかったサイト全体の変更をユーザーの作業環境に配布するよう設計されています。

ユーザー初期設定ファイルでできるカスタマイズは、サイト初期設定ファイルでも行えます。これらのファイルは通常はサーバー (あるいは、サーバーのグループ) にあり、ユーザー初期設定ファイルの最初の行に現れます。また、各サイト初期設定ファイルは、それを参照するユーザー初期設定ファイルと同じ型のシェルスクリプトでなければなりません。

C シェルのユーザー初期設定ファイルでサイト初期設定ファイルを参照するには、ユーザー初期設定ファイルの初めに次のような行を入れてください。

source /net/machine-name/export/site-files/site-init-file

Bourne または Korn シェルのユーザー初期設定ファイルでサイト初期設定ファイルを参照するには、ユーザー初期設定ファイルの初めに次のような行を入れてください。

. /net/machine-name/export/site-files/site-init-file

ローカルシステムへの参照を避ける

ユーザー初期設定ファイルでは、ローカルシステムへの固有の参照は追加しないでください。初期設定ファイルの設定は、ユーザーがどのシステムにログインしても有効になる必要があります。次に例を示します。

シェル機能

表 1-11 に、各シェルの基本的機能を示します。ユーザー初期設定ファイルを作成するのにどのシェルがどんな機能を提供するか参考にしてください。

表 1-11 Bourne、C、Korn シェルの基本機能

機能 

Bourne 

Korn 

UNIX で標準シェルとして知られる 

○ 

Bourne シェルと互換性がある構文 

○ 

ジョブ制御 

○ 

○ 

○ 

履歴リスト 

○ 

○ 

コマンド行編集 

○ 

○ 

別名 (エイリアス) 

○ 

○ 

ログインディレクトリの 1 文字省略形 

○ 

○ 

ファイルの上書き保護 (noclobber)

○ 

○ 

CTRL-D 無視 (ignoreeof)

○ 

○ 

拡張 cd

○ 

○ 

.profile とは別の初期設定ファイル

○ 

○ 

ログアウトファイル 

○ 

○ 

*

シェル環境

シェルは、login プログラム、システム初期設定ファイル、ユーザー初期設定ファイルによって定義される変数を含む環境を管理します。また、一部の変数はデフォルトによって定義されます。シェルには次の 2 種類の変数があります。

C シェルでは、小文字を使って set コマンドでシェル変数を設定し、大文字を使って setenv コマンドで環境変数を設定します。シェル変数を設定すると、対応する環境変数が設定され、その逆もあります。たとえば、path シェル変数を新しいパスで更新すると、シェルは PATH 環境変数も新しいパスで更新します。

Bourne、Korn 両シェルでは、一般的に、大文字を使って setenv コマンドでシェル変数と環境変数を設定します。また、export コマンドで環境変数の設定を終了しなければなりません。すべてのシェルで、シェル変数と環境変数は一般的に大文字の名前で参照します。

ユーザー初期設定ファイルで、ユーザーのシェル環境を、あらかじめ定義された変数の値を変更するか、変数を追加することによってカスタマイズできます。表 1-12 はユーザー初期設定ファイルで環境変数を設定する方法を示します。

表 1-12 ユーザー初期設定ファイルでの環境変数の設定方法

環境変数を設定したいシェル 

ユーザー初期設定ファイルに追加する行 

C シェル

setenv VARIAVLE value

例:

setenv MAIL /var/mail/ripley

Bourne または Korn シェル

VARIABLE=value; export VARIABLE

例: 

MAIL=/var/mail/ripley;export MAIL

表 1-13 に、ユーザー初期設定ファイルでカスタマイズできる環境変数とシェル変数を説明します。各シェルで使用される変数の詳細については、sh(1)ksh(1)csh(1) の各マニュアルページを参照してください。

表 1-13 シェル変数と環境変数の説明

変数 

説明 

ARCH

ユーザーのシステムアーキテクチャ (たとえば sun4i386) を設定する。この変数は ARCH = `uname -p` (Bourne または Korn シェル) または setenv ARCH `uname -p` (C シェル) で設定する。この変数に影響されるシェルの動作はない。この変数は単にシェルスクリプト内での分岐に利用する。

CALENDAR

Calender 実行ファイルにパスを設定する。 

CDPATH (C シェルでは cdpath)

cd コマンドで使用する変数を設定する。cd コマンドの対象ディレクトリを相対パス名で指定すると、cd コマンドは対象ディレクトリをまず現在のディレクトリ (.) 内で検索する。見つからなかった場合は、CDPATH 変数のリストの順で検索され、見つかると、ディレクトリの変更が行われる。CDPATH で対象のディレクトリが見つからなかった場合は、現在の作業ディレクトリは変更されない。たとえば、CDPATH 変数を /home/jean に設定し、その下に binrje に 2 つのディレクトリがある場合に、/home/jean/bin ディレクトリの中で cd rje と入力すると、絶対パスを指定しなくても、ディレクトリを /home/jean/rje に変更することになる。

DESKSET

DeskSetTM 実行ファイルへのパスを設定する。

history

C シェルの履歴を設定する。 

HOME (C シェルでは home)

ユーザーのホームディレクトリへのパスを設定する。 

LANG

ロケールを設定する。 

LOGNAME

現在ログインしているユーザーの名前を設定する。LOGNAME のデフォルト値は、passwd ファイルに指定されているユーザー名にログインプログラムによって自動的に設定される。したがって、この変数を参照すればユーザー名を入手できる (設定を変更してはならない)。

LPDEST

ユーザーのデフォルトプリンタを設定する。 

MAIL

ユーザーのメールボックスへのパスを設定する。 

MANPATH

アクセスできるマニュアルページの階層を設定する。 

MANSECTS

アクセスできるマニュアルページの階層を設定する。 

OPENWINHOME

OpenWindows サブシステムへのパスを設定する。 

PATH (C シェルでは path)

ユーザーがコマンドを入力したときに実行するプログラムについて、シェルが検索するディレクトリを順番に指定する。ディレクトリが検索パス上にない場合は、ユーザーはコマンドの絶対パス名を入力しなければならない。 

デフォルトの PATH は、ログインプロセスで .profile (Bourne または Korn シェル) または .cshrc (C シェル) の指定どおりに自動的に定義され、設定される。

 

検索パスの順序が重要となる。同じコマンドが異なる場所にそれぞれ存在するときは、最初に見つかったコマンドが使用される。たとえば、PATH が (Bourne、Korn シェル構文で) PATH=/bin:/usr/bin:/usr/sbin:$HOME/binのように定義されていて、sample というファイルが /usr/bin/home/jean/bin の両方にあるものとする。ユーザーが sample コマンドを、その絶対パスを指定しないで入力した場合は、/usr/bin で見つかったバージョンが使用される。

prompt

C シェルのシェルプロンプトを設定する。 

PS1

Bourne または Korn シェルのシェルプロンプトを設定する。 

SHELL (C シェルでは shell)

makevi、その他のツールが使うデフォルトシェルを設定する。

TERMINFO

terminfo ファイルに追加した、サポートされていない端末のパス名を指定する。/etc/profile または /etc/.loginTERMINFO 変数を使う。

 

TERMINFO 環境変数を設定すると、システムはまずユーザーが定義した TERMINFO パスを調べる。ユーザーが定義した TERMINFO ディレクトリ内に端末の定義が見つからなかった場合は、システムはデフォルトディレクトリ /usr/share/lib/terminfo で定義を探す。どちらにも見つからなかった場合は、端末は dumb として定義される。

TERM (C シェルでは term)

端末を設定する。この変数は /etc/profile または /etc/.login で再度設定する必要がある。ユーザーがエディタを起動すると、システムはこの環境変数の定義と同じ名前のファイルを探す。システムは、TERMINFO が参照するディレクトリ内を探して端末の特性を知る。

TZ

時間帯を設定する。これは、たとえば ls -l コマンドで日付を表示する場合に使われる。TZ をユーザーの環境に設定しないと、システムの設定が使用される。設定する場合、グリニッジ標準時が使用される。

PATH 変数

ユーザーが絶対パス名でコマンドを入力すると、シェルはそのパス名を使ってコマンドを探します。ユーザーがコマンド名しか指定しないと、シェルは PATH 変数で指定されているディレクトリの順でコマンドを探します。ディレクトリのどれかで見つかれば、シェルはコマンドを実行します。

デフォルトのパスがシステムで設定されますが、大部分のユーザーはそれを変更して他のコマンドディレクトリを追加します。環境の設定や、正しいバージョンのコマンドまたはツールへのアクセスに関連して発生するユーザーの問題の多くは、パス定義の誤りが原因です。

ガイドライン

次に、効率的な PATH 変数を設定するガイドラインをいくつか示します。

例 - ユーザーのデフォルトパスの設定

次の例は、ユーザーのデフォルトパスがホームディレクトリと他の NFS マウントディレクトリを含むように設定する方法を示します (現在の作業ディレクトリはパスの初めに指定されます)。C シェルユーザー初期設定ファイルでは、次の行を追加してください。

set path=(. /usr/bin $HOME/bin /net/glrr/files1/bin)

Bourne または Korn シェルユーザー初期設定ファイルでは、次の行を追加してください。

PATH=.:/usr/bin:/$HOME/bin:/net/glrr/files1/bin
export PATH

ロケール変数

LANG および LC 環境変数は、時間帯と照合順序、および日付、時間、通貨、番号の書式など、ロケール固有の変換と表記をシェルに指定します。さらに、ユーザー初期設定ファイルで stty コマンドを使って、システムが複数バイト文字をサポートするかどうかを設定できます。

LANG は、ロケールのすべての変換と表記を設定します。特に必要な場合はこれとは別に、次の LC 変数、LC_COLLATELC_CTYPELC_MESSAGESLC_NUMERICLC_MONETARYLC_TIME によりその他の設定を行えます。

表 1-14 は、LANGLC 環境変数の値を示します。

表 1-14 LANGLC 変数の値

ロケール 

値 

de

German

fr

French

iso_8859_1

English および European

it

Italian

japanese

Japanese

korean

Korean

sv

Swedish

tchinese

Taiwanese

例 - LANG 変数によるロケールの設定

次の例は、LANG 環境変数を使ってロケールを設定する方法を示しています。C シェルユーザー初期設定ファイルでは、次の行を追加してください。

setenv LANG DE

Bourne または Korn シェルユーザー初期設定ファイルでは、次の行を追加してください。

LANG=DE; export LANG

デフォルトのファイルアクセス権 (umask)

ファイルまたはディレクトリを作成したときに設定されるデフォルトのファイルアクセス権は、ユーザーマスクによって制御されます。ユーザーマスクは、初期設定ファイルで umask コマンドにより設定されます。現在のユーザーマスクの値は、umask と入力して Return キーを押すと表示できます。

ユーザーマスクは 3 桁の 8 進値で設定します。最初の桁でそのユーザーのアクセス権を設定し、第 2 桁でグループのアクセス権を設定し、第 3 桁で「その他 」(ワールドとも呼ばれます) のアクセス権を設定します。最初の桁がゼロの場合、この桁は表示されません。たとえば、umask を 022 に設定すると、22 が表示されます。

設定する umask の値は、与えたいアクセス権の値を 666 (ファイルの場合) または 777 (ディレクトリの場合) から引きます。引いた残りが umask に使用する値です。たとえば、ファイルのデフォルトモードを 644 (rw-r--r--) に変更したいとすれば、666 と 644 の差 022 が umask コマンドの引数として使用する値です。

また、表 1-15 から umask 値を決めることもできます。この表は、 umask の各 8 進値から作成される、ファイルとディレクトリのアクセス権を示します。

表 1-15 umask 値のアクセス権

umask 8 進値

ファイルアクセス権 

ディレクトリアクセス権 

0

rw-

rwx

1

rw-

rw-

2

r--

r-x

3

r--

r--

4

-w-

-wx

5

-w-

-w-

6

--x

--x

7

--- (なし)

--- (なし)

次の例は、デフォルトのファイルアクセス権を rw-rw-rw- に設定します。

umask 000

ユーザー初期設定ファイルとサイト初期設定ファイルの例

ここでは、ユーザー自身の初期設定ファイルをカスタマイズする場合にまず使用する、ユーザー初期設定ファイルとサイト初期設定ファイルの例を示します。例の中のシステム名やパス名は、実際のサイトに合わせて置き換えてください。

コード例 - .profile ファイルの例


例 1-1 .profile ファイルの例


 [ユーザーのシェルの検索パスを設定する。] PATH=$PATH:$HOME/bin:/usr/local/bin:/usr/ccs/bin:.
 [ユーザーのメールファイルへのパスを設定する。] MAIL=/var/mail/$LOGNAME
 [ユーザーの Usenet ニュースサーバー用の環境変数を設定する。] NNTPSERVER=server1
 [マニュアルページへのユーザーの検索パスを設定する。] MANPATH=/usr/share/man:/usr/local/man
 [ユーザーのデフォルトプリンタを設定する。] PRINTER=printer1
 [ユーザーのデフォルトのファイル作成アクセス権を設定する。] umask 022	
 [指定された環境変数をエクスポートする。] export PATH MAIL NNTPSERVER MANPATH PRINTER 

コード例 - .cshrc ファイルの例


例 1-2 .cshrc ファイルの例


 [ユーザーのシェルの検索パスを設定する。] set path=($PATH $HOME/bin /usr/local/bin /usr/ccs/bin)
 [ユーザーのメールファイルへのパスを設定する。] setenv MAIL /var/mail/$LOGNAME
 [ユーザーの Usenet ニュースサーバーを設定する。] setenv NNTPSERVER server1
 [ユーザーのデフォルトプリンタを設定する。] setenv PRINTER printer1
 [ History コマンドの別名を作成する (h と入力するだけで history コマンドを実行できる)。] alias h history
 [ユーザーのデフォルトのファイル作成アクセス権を設定する。] umask 022
 [「サイト初期設定ファイルの例」 に示すサイト初期設定ファイルを実行する。] source /net/server2/site-init-files/site.login

サイト初期設定ファイルの例

次のサイト初期設定ファイルの例では、ユーザーは特定のバージョンのアプリケーションを選択できます。

表 1-16 サイト初期設定ファイルの例
# @(#)site.login
main: 
echo "Application Environment Selection"
echo ""
echo "1. Application, Version 1"
echo "2. Application, Version 2"
echo "" 
echo -n "Type 1 or 2 and press Return to set your 
application environment: " 

set choice = $<	

if ( $choice !‾ [1-2] ) then 
goto main 
endif 

switch ($choice) 

case "1": 
setenv APPHOME /opt/app-v.1 
breaksw 

case "2": 
setenv APPHOME /opt/app-v.2 
endsw

このサイト初期設定ファイルはユーザーの .cshrc ファイル (C シェルユーザーのみ使用可能) で、次のように参照できます。

source /net/server2/site-init-files/site.login

この行では、サイト初期設定ファイルは site.login と指定され、server2 という名前のサーバー上にあります。また、この行では自動マウンタがユーザーのシステムで実行されていると仮定しています。

第 2 章 ユーザーアカウントとグループの設定と管理の手順

この章では、ユーザーアカウントとグループを設定し、管理する手順について説明します。

この章の内容は次のとおりです。

ユーザーアカウントとグループ管理の概要については、第 1 章「ユーザーアカウントとグループの管理の概要」を参照してください。

スーパーユーザー (root) になる

ユーザーを追加するなどのほとんどの管理作業では、まず、root (UID=0) でログインする必要があります。root アカウントは、システムを変更したり、緊急時にユーザーファイルの保護を無効にしたりできるので、スーパーユーザーアカウントとしても知られています。

スーパーユーザーアカウントは、むやみにシステムを変更しないために、管理作業を実行するためだけに使用してください。

root としてシステムにログインすることも、su(1M) コマンドを使用してスーパーユーザーアカウントに変更することも可能です。

スーパーユーザー (root) になる方法

次のいずれかの方法で、スーパーユーザーになります。両方とも、root のパスワードを知っておく必要があります。

ユーザーアカウントの設定

表 2-1 作業マップ: ユーザーアカウントの設定

作業 

説明 

手順の説明 

1. ユーザー初期設定ファイルのカスタマイズ 

(省略可能) ユーザー初期設定ファイル (.cshrc.profile.login) を設定する。これによって新規ユーザーに一貫した環境を提供できる。

「ユーザー初期設定ファイルをカスタマイズする方法」

2. グループの追加 

(省略可能) ユーザーの管理を容易にするため、グループマネージャの「編集(Edit)」メニューから「追加(Add)」を選択してグループを追加する。通常は 1 回だけ行う作業。

「グループを追加する方法」

3. ユーザーアカウントの追加 

新しいユーザーアカウントを追加する Admintool の「ユーザー」メインウィンドウを使用して、ユーザーアカウントを追加する。 

「新しいユーザーアカウントを追加する方法」

4. ユーザーのホームディレクトリの共有  

ユーザーのホームディレクトリを共有することによって、ユーザーのシステムからそのディレクトリをリモートでマウントできる。  

「ユーザーのホームディレクトリを共有する方法」

5. ユーザーのホームディレクトリのマウント  

ユーザーのホームディレクトリをユーザーのシステムに mount コマンドにより手作業でマウントする。

「ユーザーのホームディレクトリをマウントする方法」

ユーザー情報データシート

ユーザーアカウントを追加する前に、ユーザーに関する情報を以下のような形式で記録しておくと便利です。

項目 

記入欄 

ユーザー名 

 

ユーザー ID 

 

一次グループ 

 

二次グループ 

 

コメント 

 

デフォルトシェル 

 

パスワードの状態と有効期限 

 

ホームディレクトリのサーバー名 

 

ホームディレクトリのパス名 

 

マウント方法 

 

ホームディレクトリのアクセス権 

 

メールサーバー 

 

所属部署 

 

部署管理者 

 

管理者 

 

従業員名 

 

役職 

 

資格 

 

従業員番号 

 

開始日 

 

メール別名への追加 

 

デスクトップシステム名 

ユーザー初期設定ファイルをカスタマイズする方法

  1. ユーザーのホームディレクトリを作成し、共有するシステムでスーパーユーザーになります。

  2. 各タイプのユーザー用にスケルトンディレクトリを作成します。


    # mkdir /shared-directory/skel/user-type
    

    shared-directory

    ネットワーク上の別のシステムで利用できるディレクトリの名前 

    user-type

    ユーザーのタイプに応じて初期設定ファイルを格納するディレクトリの名前 

  3. デフォルトのユーザー初期設定ファイルを、異なるタイプのユーザー用に作成したディレクトリにコピーします。


    # cp /etc/skel/local.cshrc /shared-directory/skel/user-type/.cshrc
    # cp /etc/skel/local.login /shared-directory/skel/user-type/.login
    # cp /etc/skel/local.profile /shared-directory/skel/user-type/.profile
    

    注 -

    ls -a コマンドを使うと . (ドット) ファイルを一覧表示できます。


  4. 各ユーザータイプ用にユーザー初期設定ファイルを編集し、必要に応じてカスタマイズします。

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

  5. ユーザー初期設定ファイルのアクセス権を設定します。


    # chmod 744 /shared-directory/skel/user-type/.*
    

例 - ユーザー初期設定ファイルのカスタマイズ

次の例では、特定のタイプのユーザー向けの、/export/skel/enduser ディレクトリにある C シェルユーザー初期設定ファイルをカスタマイズします。


# mkdir /export/skel/enduser
# cp /etc/skel/local.cshrc /export/skel/enduser/.cshrc

(.cshrc の編集 - 「コード例 - .cshrc ファイルの例」を参照)
# chmod 744 /export/skel/enduser/.*

Admintool を起動する方法

  1. 次の条件がそろっていることを確認します。Admintool を使用するには、次のものが必要です。

    • ビットマップディスプレイモニター。Admintool ソフトウェアは、Sun ワークステーションの標準ディスプレイモニターなど、ビットマップ画面のコンソールを使用するシステムでだけ使用できます。

    • OpenWindows 環境などの X Window システムが動作していること。

    • sysadmin グループのメンバーであること (グループ 14)。

    コンソールとして ASCII 端末を使用するシステムで管理作業を行うには、Solaris のコマンドを使用してください。詳細は、useradd(1M) のマニュアルページを参照してください。

  2. Admintool を起動します。


    $ admintool &
    

    「Admintool:ユーザー (Users)」メインウィンドウが表示されます。

例 - Admintool を起動する

これは「Admintool:ユーザー (Users)」メインウィンドウです。このウィンドウを使用すれば、ユーザーアカウント情報を管理できます。

Graphic

グループを追加する方法

  1. Admintool を起動します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. 「ブラウズ (Browse)」メニューから「グループ (Group)」を選択します。

    「Admintool:グループ (Groups)」ウィンドウが表示されます。

  3. 「編集 (Edit)」メニューから「追加 (Add)」を選択します。

    「追加 (Add)」ウィンドウが表示されます。各フィールドについての説明は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールド定義を表示してください。

  4. 新しいグループの名前を「グループ名 (Group Name)」テキストボックスに入力します。

  5. 新しいグループのグループ ID を「グループ ID (Group ID)」テキストボックスに入力します。

    グループ ID は固有でなければなりません。

  6. (省略可能) 「メンバーリスト (Members List)」にユーザー名を入力します。

    ユーザーのリストをグループに追加します。ユーザー名はカンマで区切ります。

  7. 「了解 (OK)」をクリックします。

    「Admintool:グループ (Groups)」ウインドウに表示されるグループのリストに、新しいグループが追加されます。

例 - グループを追加する

次の例は、グループ名が users、グループ ID が 101 のグループを追加する場合です。

Graphic

新しいユーザーアカウントを追加する方法

  1. (省略可能) 「ユーザー情報データシート」 のユーザー情報データシートに記入します。

  2. Admintool を起動します。

    詳細については 「Admintool を起動する方法」を参照してください。

  3. 「編集 (Edit)」メニューから「追加 (Add)」を選択します。

    「追加 (Add)」ウィンドウが表示されます。

  4. 「追加 (Add)」ウィンドウの各項目を入力します。

    各フィールドについての説明は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールド定義を表示してください。

  5. 「了解 (OK)」をクリックします。

    「Admintool: ユーザー (Users)」のメインウインドウに表示されるユーザーアカウントのリストに、新しいユーザーアカウントが追加されます。

次に進む手順

ユーザーのホームディレクトリを作成した場合、ユーザーのシステムがリモートでマウントできるように、そのディレクトリを共有しなければなりません。詳細については、「ユーザーのホームディレクトリを共有する方法」を参照してください。

ディスク容量に制限がある場合、ユーザーのホームディレクトリを含むファイルシステムで、そのユーザーのためのディスク割り当てを設定できます。ディスク割り当てを設定する方法については、『Solaris のシステム管理 (第 2 巻)』の「割当て量の管理」を参照してください。

例 - 新しいユーザーアカウントを追加する

次の例は、ユーザー kryten をシステムに追加します。

Graphic

ユーザーのホームディレクトリを共有する方法

  1. ホームディレクトリを含むシステムでスーパーユーザーになります。

  2. 次のように入力して、mountd デーモンが動作していることを確認します。


    # ps -ef | grep mountd
    root   176     1  0   May 02 ?        0:19 /usr/lib/nfs/mountd

    mountd デーモンが動作している場合、次の行が表示されます。

    /usr/lib/nfs/mountd

  3. mountd デーモンが動作していない場合、mountd デーモンを起動します。


    # /etc/init.d/nfs.server start
    
  4. システム上で共有されているファイルシステムを一覧表示します。


    # share
    
  5. ユーザーのホームディレクトリを含むファイルシステムがすでに共有されているかどうかによって、次の手順を決定します。

    ユーザーのホームディレクトリを含むファイルシステムの状態 

    次の手順 

    すでに共有されている 

    次の確認手順へ進む 

    共有されていない 

    手順 6

  6. /etc/dfs/dfstab ファイルを編集して、次の行を追加します。

    share -F nfs /file-system
    

    file-system

    共有するユーザーのホームディレクトリを含むファイルシステム。習慣上、このファイルシステムは /export/home になる。

  7. /etc/dfs/dfstab ファイルで指定されたファイルシステムを共有します。


    # shareall -F nfs
    

    このコマンドは、/etc/dfs/dfstab ファイルにある share コマンドをすべて実行するので、システムをリブートする必要はありません。

  8. ユーザーのホームディレクトリが共有されていることを確認します。


    # share
    

次に進む手順

ユーザーのホームディレクトリがユーザーのシステム上にない場合、それが配置されているシステムから、ユーザーのホームディレクトリをマウントしなければなりません。詳細については、「ユーザーのホームディレクトリをマウントする方法」を参照してください。

例 - ユーザーのホームディレクトリの共有


# ps -ef | grep mountd
# /etc/init.d/nfs.server start
# share
# vi /etc/dfs/dfstab

( share -F nfs /export/home という行が追加される)

# shareall -F nfs
# share
-               /usr/dist                ro   "" 
-               /export/home/user-name     rw   ""  

ユーザーのホームディレクトリをマウントする方法

  1. ユーザーのホームディレクトリが共有されていることを確認します。詳細については、「ユーザーのホームディレクトリを共有する方法」を参照してください。

  2. ユーザーのシステムにスーパーユーザーとしてログインします。

  3. /etc/vfstab ファイルを編集して、次のようなユーザーのホームディレクトリ用のエントリを作成します。

    system-name:/export/home/user-name - /export/home/user-name nfs - yes rw

    system-name

     ホームディレクトリが配置されるシステムの名前

    /export/home/user-name

    共有されるユーザーのホームディレクトリの名前。習慣上、/export/home にユーザーのホームディレクトリが含まれるが、別のファイルシステムでも構わない。

    -

    エントリに必要な可変部分 

    /export/home/user-name

    ユーザーのホームディレクトリがマウントされるディレクトリの名前 

    /etc/vfstab ファイルにエントリを追加する方法については、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。

  4. ユーザーのホームディレクトリのマウント先を作成します。


    # mkdir -p /export/home/user-name
    
  5. ユーザーのホームディレクトリをマウントします。


    # mountall
    

    現在の vfstab ファイルにあるすべてのエントリ (このファイルの「mount at boot」フィールドが yes に設定されている) がマウントされます。

  6. mount コマンドを使って、ホームディレクトリがマウントされているかどうかを確認してください。

例 - ユーザーのホームディレクトリのマウント


# vi /etc/vfstab
 
(venus:/export/home/ripley - /export/home/ripley
nfs - yes rw の 1 行を追加する)
 
# mkdir -p /export/home/ripley
# mountall
# mount
/ on /dev/dsk/c0t3d0s0 read/write/setuid/largefiles on Tue Jun 2 12:37:36 1998
/usr on /dev/dsk/c0t3d0s6 read/write/setuid/largefiles on Tue Jun 2 12:37:36 1998
/proc on /proc read/write/setuid on Tue Jun 2 12:37:36 1998
/dev/fd on fd read/write/setuid on Tue Jun 2 12:37:38 1998
/opt on /dev/dsk/c0t3d0s5 setuid/read/write/largefiles on Tue Jun 2 12:37:38 1998
/tmp on swap read/write on Jun 2 12:37:39 1998
/export/home/ripley on venus:/export/home/ripley /read/write/remote 
on Jun 2 12:37:40 ...

ユーザーアカウントの管理

表 2-2 作業マップ:ユーザーアカウントの管理

作業 

説明 

手順の説明 

1. グループの変更 

「グループ」ウィンドウの「編集 (Edit)」メニューから「変更 (Modify)」を選択して、グループ名またはグループ内のユーザーを変更する。 

「グループを変更する方法」

2. グループの削除  

「グループ」ウィンドウの「編集 (Edit)」メニューから「削除 (Delete)」を選択して、グループを削除する。  

「グループを削除する方法」

3. ユーザーアカウントの変更 

ユーザーアカウントを無効にする

一時的にユーザーアカウントを無効にしたい場合、「変更 (Modify)」ウィンドウの「パスワード (Password)」メニューでそのユーザーアカウントをロックする。 

「ユーザーアカウントを無効にする方法」

 

ユーザーのパスワードを変更する

ユーザーのパスワードを変更したい場合、「変更 (Modify)」ウィンドウの「パスワード (Password)」メニューを使用する。 

「ユーザーのパスワードを変更する方法」

 

パスワード有効期限を変更する

定期的にユーザーのパスワードを変更させたい場合、「変更 (Modify)」ウィンドウでユーザーのパスワード有効期限フィールドを変更する (「アカウントのセキュリティ設定(Account Security)」カテゴリ)。 

「ユーザーアカウントのパスワード有効期限を変更する方法」

4. ユーザーアカウントの削除  

「ユーザー」ウィンドウの「編集(Edit)」メニューから「削除 (Delete)」を選択して、ユーザーアカウントを削除する。 

「ユーザーアカウントを削除する方法」

グループを変更する方法

  1. Admintool を起動して、「ブラウズ (Browse)」メニューからグループを選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. 「Admintool: グループ (Groups)」ウインドウから変更するグループエントリを選択します。

  3. 「編集 (Edit)」メニューから「変更 (Modify)」を選択します。

    指定したグループエントリを含む「変更 (Modify)」ウィンドウが表示されます。

  4. グループ名か、またはグループ内のユーザーを変更します。

    ユーザー名はカンマで区切らなければなりません。各フィールドについての説明は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールド定義を表示してください。

  5. 「了解 (OK)」をクリックします。

    メインウインドウに表示されるグループ情報が更新されます。

例 - グループを変更する

次の例は、ユーザー r2d2holly、および kryten を、staff グループに追加します。

Graphic

グループを削除する方法

  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「グループ (Groups)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. 「グループ」ウインドウから削除したいグループエントリを指定します。

  3. 「編集 (Edit)」メニューから「削除 (Delete)」を選択します。

    ウィンドウが表示され、削除してよいかどうかをたずねられます。

  4. 「了解 (OK)」をクリックします。

    「グループ」ウインドウからそのグループエントリが削除されます。

ユーザーアカウントを変更する方法

  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「ユーザー (Users)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. 「ユーザー (Users)」ウインドウから変更するユーザーアカウントエントリを選択します。

  3. 「編集 (Edit)」メニューから「変更 (Modify)」を選択します。

    選択したユーザーアカウントエントリを含む「変更 (Modify)」ウィンドウが表示されます。

  4. ユーザーアカウントを変更します。

    各フィールドについての説明は、「ヘルプ (Help)」ボタンをクリックして、このウィンドウのフィールド定義を表示してください。パスワードやパスワード有効期限の変更など、「アカウントのセキュリティ設定 (Account Security)」フィールドの任意の項目を変更することができます。詳しい手順については、以下の項を参照してください。

  5. 「了解 (OK)」をクリックします。

  6. 「ユーザー (Users)」ウィンドウで、変更したユーザーアカウントのエントリをダブルクリックして、変更が行われていることを確認しください。確認後、そのまま「取消し(Cancel)」をクリックしてウィンドウを閉じてください。

例 - ユーザーアカウントを変更する

次の例は、lprimmer ユーザーアカウントを二次グループとして追加した場合です。

Graphic

ユーザーアカウントを無効にする方法


注 -

パスワードの状態を「通常のパスワード設定 (Normal Password)」または「最初にログインするまで未設定 (Cleared until first login)」に変更することによって、ユーザーアカウントを有効にすることができます。


  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「ユーザー (Users)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. 無効にするユーザーアカウントエントリを選択します。

  3. 「編集 (Edit)」メニューから「変更 (Modify)」を選択します。

    選択したユーザーアカウントエントリを含む「変更 (Modify)」ウィンドウが表示されます。

  4. 「パスワード (Password)」メニューから「アカウントを凍結 (Account is Locked)」を選択します。

    これによってパスワードの状態が凍結され、ユーザーアカウントが無効になります。

  5. 「了解 (OK)」をクリックします。

  6. 無効にしたユーザーアカウントでログインして、そのユーザーアカウントが無効になっていることを確認してください。

例 - ユーザーアカウントを無効にする

次の例は、rimmer ユーザーアカウントを無効にしています。

Graphic

ユーザーのパスワードを変更する方法

  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「ユーザー (Users)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. パスワード変更が必要なユーザーアカウントエントリを選択します。

  3. 「編集 (Edit)」メニューから「変更 (Modify)」を選択します。

    選択したユーザーアカウントエントリを含む「変更 (Modify)」ウィンドウが表示されます。

  4. 「パスワード (Password)」メニューから「通常のパスワード設定 (Normal password)」を選択します。

  5. 「了解 (OK)」をクリックします。

例 - パスワードの変更

これは、ユーザーのパスワードを変更するために使用されるポップアップウィンドウです。このウィンドウは、「ユーザーを追加 (Add User)」ウィンドウか「ユーザーを変更 (Modify User)」ウィンドウから利用できます。

Graphic

ユーザーアカウントのパスワード有効期限を変更する方法

  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「ユーザー (Users)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. パスワード有効期限の変更が必要なユーザーアカウントエントリを選択します。

  3. 「編集 (Edit)」メニューから「変更 (Modify)」を選択します。

    指定したユーザーアカウントエントリを含む「変更(Modify)」ウィンドウが表示されます。

  4. パスワードの有効期限に関係のある以下のフィールドを変更します。

    • 最短有効日数 (Min Change)

    • 最長有効日数 (Max Change)

    • 最長非使用日数 (Max Inactive)

    • 有効期限 (Expiration Date)

    • 警告 (Warning)

    「アカウントのセキュリティ設定 (Account Security)」カテゴリの一部であるパスワード有効期限フィールドについての説明は、「ヘルプ (Help)」ボタンをクリックしてください。

  5. 「了解 (OK)」をクリックします。

例 - ユーザーアカウントのパスワード有効期限の変更

次の例では、ユーザーは少なくとも 1 日 (Min Change) だけパスワードを保持しなければなりません。また、ユーザーは 60 日 (Max Change) ごとにパスワードを変更しなければなりません。ユーザーは、アカウントが 10 日 (Max Inactive) を超える期間無効である場合、パスワードを変更しなければなりません。

Graphic

ユーザーアカウントを削除する方法

  1. Admintool を起動します。「ブラウズ (Browse)」メニューから「ユーザー (Users)」を選択します。

    詳細については 「Admintool を起動する方法」を参照してください。

  2. メインウィンドウから削除するユーザーアカウントエントリを選択します。

  3. 「編集 (Edit)」メニューから「削除 (Delete)」を選択します。

    「削除 (Delete)」ウィンドウが表示され、そのユーザーアカウントを削除してもよいかどうかをたずねられます。

  4. (省略可能) チェックボックスをクリックして、ユーザーのホームディレクトリとその内容を削除します。

  5. ユーザーアカウントを削除する準備が出来ていれば「了解 (OK)」をクリックします。そのユーザーアカウントエントリが、「Admintool: ユーザー (Users)」メインウィンドウから削除されます。

例 - ユーザーアカウントを削除する

ユーザー kryten のアカウントと /export/home/kryten ディレクトリが削除されます。

Graphic

Solaris ユーザー登録

Solaris ユーザー登録は、新しい Solaris リリース、アップグレードのオファー、およびプロモーションについての情報を入手するためのツールです。このグラフィカルユーザーインタフェース (GUI) は、ユーザーが最初にユーザーのデスクトップにログインしたときに、自動的に起動されます。この GUI によって、ユーザーは現在登録することも、将来登録することも、あるいは登録しないことも可能です。ユーザー登録により、サンはユーザーの Solaris バージョン、タイプ、プラットフォーム、ハードウェアおよび、ロケールの情報を入手します。

SolarisSM SolveSM へのアクセス

Solaris ユーザー登録が完了すると、Solaris Solve にアクセスできるようになります。Solaris Solve とは、Solaris の貴重な製品情報やソリューションが 1 箇所にまとめて提供されている会員制の Web サイトのことです。Solaris Solve を使用すれば、Solaris の最新リリースに関する最新情報をすばやく簡単に入手できます。また、Sun のその他の契約やサービスについても知ることができます。

基本的に、Solaris ユーザー登録を完了して、Solaris Solve にアクセスする手順は次のとおりです。

  1. Solaris ユーザー登録電子プロファイルに入力します。

  2. 上記プロファイルを電子メールで送信するか、印刷したものを FAX か郵便で送ります。

  3. Solaris Solve サイトにアクセスするためのログイン ID とパスワードを作成します。

    Solaris Solve サイトにすぐにアクセスしない場合でも、Solaris ユーザーの登録時に自分の Solaris Solve ログイン ID とパスワードを作成しておくことをお薦めします。Solaris Solve ログイン ID とパスワードは、6 〜 8 文字の英数字で作成します。空白とコロンは使用できません。

  4. Solaris Solve サイトにアクセスします。


注 -

システム管理者またはスーパーユーザーとしてログインすると、Solaris ユーザー登録は起動されません。


登録するように選択した場合、完成したフォームのコピーが $HOME/.solregis/uprops に格納されます。登録しないように選択した場合でも、次のいずれかの方法でユーザー登録を起動して、後から登録することができます。

詳細については、solregis(1) のマニュアルページを参照してください。

Solaris ユーザー登録の問題の解決

この節では、Solaris ユーザー登録に関連した問題を解決する方法について説明します。

次の表に、登録時に発生する可能性のある問題とその対処方法について説明します。

表 2-3 登録時の問題と対処方法

問題 

対処方法 

登録フォームが初期化されない。Web ページウィンドウに、システム管理者に登録設定を妨げている問題を解決してもらうように促すメッセージが表示される。 

登録ファイルが失われていないかチェックする。 

フォームを電子メールで送信できない。ダイアログボックスに、システム管理者に問題を解決してもらうように促すメッセージが表示される。 

電子メールが正しく設定されているかどうかをチェックする。完成した登録フォームを電子メールで送信するには CDE が必要なため、CDE がユーザーのシステム上にあるかを確認する。別の方法としてフォームを印刷して FAX か郵便で送信することもできる。 

フォームを印刷できない。ダイアログボックスに、システム管理者に問題を解決してもらうように促すメッセージが表示される。 

プリンタが正しく構成されているかどうかをチェックする。別の方法として電子メールでフォームを送信することもできる。 

フォームを保存できない。ダイアログボックスに、登録は成功したが、将来登録を更新するときに登録情報を呼び出せないことが示される。 

ユーザーのホームディレクトリをチェックする。必要な処置は、システムの構成によって異なる。 

Solaris Solve のログイン ID とパスワードを忘れてしまった。 

SolarisSolve@sun.com に問題を説明するメールを英語で送るか、「Solaris ユーザー登録をやり直す方法」を参照のこと。

登録プロセスをやり直したい。 

「Solaris ユーザー登録をやり直す方法」を参照のこと。

Solaris ユーザー登録をやり直す方法

Solaris ユーザー登録を最初からやり直すには、次の手順に従ってください。

  1. $HOME/.solregis ディレクトリに移動します。


    % cd $HOME/.solregis
    
  2. uprops ファイルを削除します。


    % rm uprops
    
  3. 登録プロセスを再起動します。


    % /usr/dt/bin/solregis &
    

ユーザー登録を無効にする方法

表 2-4 に、Solaris ソフトウェアのインストールの前後において、ユーザー登録を無効にする方法を示します。Solaris ユーザー登録を無効にする前に、組織のシステム管理者をユーザー登録しておくことをお勧めします。

表 2-4 ユーザー登録を無効にする方法

ユーザー登録を無効にするとき 

方法 

参照先 

Solaris ソフトウェアをインストールする前 

  • SUNWsregu パッケージを選択解除する (対話式インストール)。

  • SUNWsregu パッケージをインストールしないように、カスタム JumpStart プロファイルを変更する。

  • 1 つまたは複数のシステム上の /etc/default ディレクトリに、DISABLE=1 という行を持つ、solregis という名前のファイルを作成する finish スクリプトを作成して実行する。

Solaris のインストール (上級編)

solregis(1) のマニュアルページ

Solaris ソフトウェアをインストールした後 

  • pkgrm コマンドを使用して SUNWsregu パッケージを削除する。

  • /etc/default ディレクトリに solregis ファイルを追加する (カスタム JumpStart インストールのみ)。

第 17 章「ソフトウェア管理の手順」

Solaris のインストール (上級編)

solregis(1) のマニュアルページ