Solaris ネーミングの設定と構成

第 9 章 NIS+ テーブルの設定

この章では、NIS+ コマンドセットを使用して、/etc ディレクトリ内のファイルや NIS マップからマスターサーバー上に NIS+ テーブルを作成する方法について説明します。また、この章では NIS+ テーブルから NIS マップへ情報を戻す方法と、passwd テーブルのパスワード列へのアクセスを制限する方法を説明します。

テーブルの設定


注 -

NIS+ テーブルを生成する作業は、この章で説明する NIS+ コマンドセットを使用する方法よりも、パート I で説明した NIS+ 設定スクリプトを使用した場合の方が簡単です。この章で説明する方法は、NIS+ に精通した管理者や、設定スクリプトでは提供されない標準以外の機能や構成を必要とする管理者だけが使用してください。さらに、Solstice AdminSuite ツールをお持ちの場合は、NIS+ テーブルに関連する作業が簡単になります。


NIS+ テーブルを生成するには次の 4 種類の方法があります。

マップまたはファイルからテーブルを生成する場合、第 5 章「ルートドメインの設定」および第 8 章「非ルートドメインの構成」で説明する手順に従って、ルートまたはサブドメインの設定作業の中で、あらかじめテーブルを作成しておく必要があります。ドメインテーブルは、テーブルの作成後いつでも生成できますが、ドメインの設定が完了したらすぐに生成しておくことをお勧めします。テーブルを生成すると、クライアントに関する必要な情報がすでにドメインテーブル内に格納されることになるため、クライアントの追加が簡単にできます。

テーブルの生成の方法

ファイルまたは NIS マップからテーブルを生成する場合、次の 3 つの方法を使用できます。

NIS+ テーブルをファイルから生成する方法

これは /etc/hosts などの ASCII ファイルの内容を NIS+ テーブルに転送する作業です。

手順の概要は次のとおりです。

  1. データを転送する各ファイルの内容を確認します。

  2. 各ファイルのコピーを作成します。作成したコピーを実際の転送に使用します。このマニュアルでは、hosts.xfr のように、転送されるファイルのコピーの最後に .xfr を付けます。

  3. NIS+ クライアントにログインします。テーブルを更新するための資格とアクセス権が必要です。詳細は、「ファイルのセキュリティ上の留意点」を参照してください。

  4. このシェルのコマンド検索パスに /usr/lib/nis を追加します。

  5. nisaddent を使用して、次の必要なファイルを 1 つずつ転送します。

    aliases
    bootparams
    ethers
    group
    hosts
    netgroup
    netmasks
    networks
    passwd
    protocols
    rpc
    services
    shadow
    ipnodes


    注 -

    新しい /etc/inet/ipnodes ファイルには、IPv4 および IPv6 のアドレスが含まれています。nisaddent を実行して、 /etc/inet/ipnodes ファイルを ipnodes.org_dir テーブルに変換してください。


  6. publickey ファイルを転送します。

  7. オートマウンタ情報を転送します。

  8. 複製サーバーに対して nisping を実行します。

  9. テーブルにチェックポイントを実行します。

ファイルのセキュリティ上の留意点

NIS+ テーブルは、NIS+ クライアントまたは NIS+ ルートマスターサーバーから生成できます。NIS+ テーブルを生成するには、スーパーユーザー (root) としてログインする必要はありませんが、一定の資格とアクセス権は必要です。テーブル内のエントリをテキストファイルのエントリによって置換またはマージする場合、そのテーブルへの作成権と削除権が必要です。新しいエントリを追加する場合、作成権だけが必要です。


注 -

NIS+ のセキュリティシステムは複雑です。NIS+ のセキュリティに精通していない場合は、『Solaris ネーミングの管理』のセキュリティ関連の章を読んでから NIS+ 環境の設定を始めてください。


この処理が完了した後、テーブルエントリは、動作を実行した NIS+ 主体と、環境変数 NIS_GROUP によって指定されたグループによって所有されます。

前提条件

必要な情報

転送されるテキストファイルの名前と位置が必要です。

NIS+ テーブルをファイルから生成する - タスクマップ

表 9-1 NIS+ テーブルをファイルから生成する
 

タスク 

 

説明 

 

指示の参照先 

 
 

NIS+ テーブルをファイルから生成する 

 

NIS+ テーブルをファイルから生成する 

 

「NIS+ テーブルをファイルから生成する方法」

 
       

NIS+ テーブルをファイルから生成する方法

  1. データを転送する各ファイルをチェックします。

    不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。不完全なエントリは、設定を完了した後に追加する方が、不完全なエントリや破損したエントリを転送するよりも簡単です。

  2. 転送する各ファイルの作業用コピーを作成します。

    このセクションで説明する実際のファイル転送の手順では、作成した作業用コピーを使用します。各作業用コピーには、同じファイル名拡張子を付けます (たとえば、.xfr)。


    rootmaster% cp /etc/hosts /etc/hosts.xfr
    

    万が一に備えて、使用する予定のすべてのファイルを /etc 以外のディレクトリにコピーしておくのもよいでしょう。nisaddent コマンドと nispopulate コマンドでは、ファイルソースディレクトリを指定できます。

  3. NIS+ クライアントにログインします。

    この作業はどの NIS+ クライアントからでも実行できます。ただし、そのクライアントは、情報の転送先となるテーブルと同じドメインに所属していなければなりません。ここで示す例では、ルートマスターサーバーを使用します。これらの例では、システム管理者はスーパーユーザーとしてログインしているため、この操作を実際に実行している (適切な資格とアクセス権を必要とする) NIS+ 主体は、ルートマスターサーバーです。

    しかし、NIS+ テーブルを更新するだけであれば、あえてルートマスターサーバーにスーパーユーザー (root) としてログインする必要はありません。スーパーユーザーであれ、一般ユーザーであれ、一定の資格、権限、許可さえあれば、どのマシンからでも NIS+ テーブルを更新できます。

  4. このシェルのコマンド検索パスに /usr/lib/nis を追加します。

    テーブルごとに /usr/lib/nis/nisaddent コマンドを使用するため、検索パスに /usr/lib/nis を追加しておくと、毎回これを入力する必要がありません。ここでは、C シェルユーザーの場合と Bourne シェルまたは Korn シェルのユーザーの場合の 2 つの例を示します。

    C シェルの場合


    rootmaster# setenv PATH $PATH:/usr/lib/nis
    

    Bourne または Korn シェルの場合


    rootmaster# PATH=$PATH:/usr/lib/nis
    rootmaster# export PATH
    

  5. nisaddent を使用して、次のファイルを 1 度に 1 つずつ転送します。

    aliases
    bootparams
    ethers
    group
    hosts
    ipnodes
    netgroup
    netmasks
    networks
    protocols
    rpc, services

    publickeyautomounterpasswd および shadow の各ファイルは、実行する手順がそれぞれ少し異なります。publickey ファイルの場合は、手順 6 に、automounter ファイルの場合は、手順 7 に、passwd ファイルと shadow ファイルの場合は、手順 8 に進んでください。

    デフォルトでは、nisaddent はファイル情報をテーブル情報に追加します。置換またはマージを行うには、-r または -m オプションを使用します。

    置換する場合、次のように入力します。


    rootmaster# nisaddent -r -f filename table[domain]

    追加する場合、次のように入力します。


    rootmaster# nisaddent -a -f filename table [domain]

    マージする場合、次のように入力します。


    rootmaster# nisaddent -m -f filename table [domain]

    初めてテーブルを生成する場合は、デフォルトの -a オプションが最適です。NIS+ テーブルを NIS マップまたは /etc 内のファイルと同期させるための最適なオプションは -m (マージ) オプションです。

    • filename はファイル名です。通常は、nisaddent によって作成されたことを示す .xfr をファイル名の最後につけます。

    • table は NIS+ テーブル名です。domain 引数は省略可能で、テーブルを別のドメインに生成するときに使用します。ルートドメインのマスターサーバーから入力されたいくつかの例を次に示します。これらのファイルは、/etc 内のファイルを編集したものです。


    rootmaster# nisaddent -m -f /etc/hosts.xfr hosts
    rootmaster# nisaddent -m -f /etc/groups.xfr groups
    

    この作業をルート以外のサーバーから実行する場合、ルート以外のサーバーは、サポートするドメインの上のドメインに所属することに注意してください。つまり、ルート以外のサーバーはもう一つのドメインのクライアントです。たとえば、sales.doc.com. マスターサーバーは doc.com. ドメインに所属します。そのマスターサーバーからテーブルを sales.doc.com. ドメインに生成するには、nisaddent 文に sales.doc.com. ドメイン名を追加しなければなりません。たとえば、次のようになります。


    salesmaster# nisaddent -f /etc/hosts.xfr hosts Sales.doc.com.
    

    この作業を sales.doc.com. ドメインのクライアントとして実行した場合、このコマンドにドメイン名を指定する必要はありません。nisaddent については、『Solaris ネーミングの管理』のテーブルに関連する章を参照してください。

    エントリが NIS+ テーブルに転送されたことを確認するには、niscat コマンドを使用します 。詳細は、『Solaris ネーミングの管理』のテーブルに関する章を参照してください。


    rootmaster# niscat groups.org_dir
    root::0:root
    other::1::
    bin::2:root,bin,daemon
    .

    障害追跡のこつ: niscat を実行しても表示された内容が反映されてない場合、変更がマスターサーバーから複製サーバーに送られていないためかもしれません。そのような場合は、5 〜 10 分後にもう一度 niscat の実行を試みるか、niscat-M オプションを付けて実行してください。-M オプションを付けると、マスターサーバーのデータが取得されます。

  6. publickey ファイルを転送します。

    ドメインの cred テーブルには、すでにいくつかの資格が格納されているため、この cred テーブルに転送する publickey テキストファイルの内容によって、これらの資格が上書きされないよう確認する必要があります。これを避けるには、publickey テキストファイルからこれらの資格を取り除きます。rootmaster で次のような行がある場合は、すべて削除してください。


    unix.rootmaster@doc.com public-key:private-key [alg-type]

    こうすれば、publickey ファイルの内容を cred テーブルに転送できます。nisaddent-a (追加) オプションを付けて実行します。


    rootmaster# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir publickey [domain]

    ただし、この操作は DES 資格を cred テーブルに転送するだけです。主体は、cred テーブルに対する自分の LOCAL 資格を作成する必要があります。

  7. オートマウンタ情報を転送します。

    nissetup ユーティリティは auto_master テーブルと auto_home テーブルを作成しますが、これらは標準の NIS+ テーブルとはみなされません。したがって、これらのテーブルに情報を転送するには、少し異なる構文が必要となります。特に、-t フラグを使用し、そのテーブルが key-value 形式であることを指定しなければなりません。


    rootmaster# nisaddent -f auto.master.xfr -t auto_master.org_dir key-value
    rootmaster# nisaddent -f auto.home.xfr -t auto_home.org_dir key-value 
    
  8. NIS+ passwd テーブルを作成します。

    NIS+ の passwd テーブルは、/etc/passwd および /etc/shadow の両方のディレクトリのファイルから引き出されるデータで構成されます。このため、nisaddent を 2 回実行して passwd テーブルを作成しなければなりません。passwd テーブルを対象として /etc/passwd ファイルからデータを引き出す場合と、shadow テーブルを対象として /etc/shadow ファイルからデータを引き出す場合の 2 回実行します。shadow ファイルに対して nisaddent を実行する場合、shadow テーブルが存在しなくても、ターゲットテーブルに shadow を指定すること、そしてデータが実際に passwd テーブルの shadow 列に配置されることに注意してください。


    rootmaster# nisaddent -m -f /etc/passwd.xfr passwd
    rootmaster# nisaddent -m -f /etc/shadow.xfr shadow
    

  9. nisping を実行して更新内容を複製サーバーに送ります。

    nisping を実行すると、複製サーバーに変更が反映されます。


    master1# nisping domain 
    master1# nisping org_dir.domaincom. 
    master1# nisping groups_dir.domain
    

  10. テーブルに対しチェックポイントを実行します。

    ここまでの手順で、マスターサーバーと複製サーバーの NIS+ データセットがメモリ内で更新されました。今度はそれをディスク上のテーブルファイルに書き込みます。この作業を「チェックポイント」といいます。チェックポイントは必ずしもここで実行しなければならないわけではありません。定期的に実行しさえすればいいのですが、重要な変更を加えた場合は、できるだけ早い機会にディスクに書き込むことをお勧めします。

    この手順により、ドメインをサポートしている全サーバーは、それらの .log ファイルからディスク上のテーブルのコピーに新しい情報を転送します。ルートドメインを設定したばかりの場合、そのルートドメインにはまだ複製サーバーがないため、この手順はルートマスターサーバーだけが対象となります。チェックポイントを実行するには nisping コマンドに -C (大文字) オプションを付けて実行します。


    rootmaster# nisping -C org_dir 
    Checkpointing replicas serving directory org_dir.doc.com. :
    Master server is rootmaster.doc.com.
     Last update occurred at July 14, 1997
    Master server is rootmaster.doc.com.
    checkpoint succeeded.

    スワップ空間が不足している場合、サーバーはチェックポイントを正常に実行できませんが、そのことを通知してくれません。スワップ空間が十分あることを確認する方法として、niscat コマンドを使ってテーブルの内容をリスト表示する方法があります。スワップ空間が不足している場合、次のエラーメッセージが表示されます。


    can't list table: Server busy, Try Again.

    このメッセージ内容からはわかりませんが、これはスワップ空間の不足を示しています。スワップ空間を増やし、このドメインに再びチェックポイントを実行します。

NIS+ テーブルを NIS マップから生成する方法

ここでは、NIS マップの内容を NIS+ テーブルに転送します。手順を次に示します。

  1. データを転送する各 NIS マップの内容を確認します。

  2. NIS+ クライアントにログインします。

  3. このシェルのコマンド検索パスに /usr/lib/nis を追加します。

  4. nisaddent を使用して、次のマップ を 1 つずつ転送します。

    aliases
    bootparams
    ethers
    group
    hosts
    netgroup
    netmasks
    networks
    passwd
    protocols
    rpc
    services

  5. publickey マップを転送します。

  6. オートマウンタ情報を転送します。

  7. nisping を実行して変更内容を複製サーバーに反映させます。

  8. テーブルにチェックポイントを実行します。

マップのセキュリティ上の留意点

この作業を行うシステム管理者 (またはクライアント上のスーパーユーザー) に適切な資格とアクセス権がある限り、この作業は、どの NIS+ クライアントからでも実行できます。テーブル内のエントリを NIS マップのエントリで置換またはマージする場合、そのテーブルへの作成権と削除権が必要です。新しいエントリを追加する場合、作成権だけが必要です。

この作業が完了した後、テーブルエントリは、作業を実行した NIS+ 主体 (システム管理者である自分、またはスーパーユーザーとしてログインした場合はそのクライアント) と、環境変数 NIS_GROUP によって指定されたグループによって所有されます。

前提条件

必要な情報

NIS マップの名前と位置が必要です。

NIS+ テーブルを NIS マップから生成する - タスクマップ

表 9-2 NIS+ テーブルを NIS マップから生成する
 

タスク 

 

説明 

 

指示の参照先 

 
 

NIS+ テーブルを NIS マップから生成する 

 

NIS+ テーブルを NIS マップから生成する 

 

「NIS+ テーブルをマップから生成する方法」

 
       

NIS+ テーブルをマップから生成する方法

  1. データを転送する各 NIS マップをチェックします。

    不正なエントリがないことを確認します。正しいデータが、所定の場所に正しい書式で記録されていることを確認します。エントリのうち、古いもの、無効なもの、破損しているものは削除します。また、不完全なエントリや一部のみのエントリも削除します。不完全なエントリは、設定を完了した後に追加する方が、不完全なエントリや破損したエントリを転送するよりも簡単です。

  2. NIS+ クライアントにログインします。

    この作業はどの NIS+ クライアントからでも実行できます。ただし、そのクライアントは、情報の転送先となるテーブルと同じドメインに所属していなければなりません。ここで示す例では、ルートマスターサーバーを使用します。これらの例では、システム管理者はスーパーユーザーとしてログインしているため、この操作を実際に実行している (適切な資格とアクセス権を必要とする) NIS+ 主体は、ルートマスターサーバーです。

  3. このシェルのコマンド検索パスに /usr/lib/nis を追加します。

    テーブルごとに /usr/lib/nis/nisaddent コマンドを使用するため、コマンド検索パスに /usr/lib/nis を追加しておくと、毎回これを入力する必要がありません。ここでは、C シェルユーザーの場合の例と Bourne シェルまたは Korn シェルのユーザーの場合の例を示します。

    C シェルの場合


    rootmaster# setenv PATH $PATH:/usr/lib/nis
    

    Bourne または Korn シェルの場合


    rootmaster# PATH=$PATH:/usr/lib/nis
    rootmaster# export PATH
    

  4. nisaddent を使用して、次のマップを 1 度に 1 つずつ転送します。

    aliases
    bootparams
    ethers
    group
    hosts
    netgroup
    netmasks
    networks
    passwd
    protocols
    rpc
    services

    publickey ファイルとオートマウンタマップでは、少し手順が異なります。publickey ファイルの場合は、「NIS+ テーブルをファイルから生成する方」の 手順 6 に、オートマウンタファイルの場合は、手順 7 に進んでください。

    デフォルトでは、nisaddent はファイル情報をテーブル情報に追加します。置換またはマージを行うには、-r または -m のオプションを使用します。

    置換する場合、次のように入力します。


    rootmaster# nisaddent -r -y nisdomain table
    

    追加する場合、次のように入力します。


    rootmaster# nisaddent -a -y nisdomain table
    

    マージする場合、次のように入力します。


    rootmaster# nisaddent -m -y nisdomain table
    

    初めてテーブルを生成するときに最適なオプションは、デフォルトの -a オプションです。NIS+ テーブルを NIS マップまたは /etc 内のファイルと同期させるための最適なオプションは -m (マージ) オプションです。

    -y (小文字) オプションは、テキストファイルではなく、NIS ドメインを示します。nisdomain 引数は、ユーザーが NIS+ テーブルに転送しようとしているマップを持つ NIS ドメインの名前です。実際のマップを指定する必要はありません。nisaddent ユーティリティは、table 引数に対応する NIS マップを自動的に選択します。


    rootmaster# nisaddent -m -y olddoc hosts
    rootmaster# nisaddent -m -y olddoc passwd
    rootmaster# nisaddent -m -y olddoc groups
    

    最初の例では、olddoc (NIS) ドメイン内の hosts.byname マップと hosts.byaddr マップの内容を、ルートドメイン (NIS+) 内の NIS+ hosts テーブルに転送します。2 番目の例では、パスワード関連情報を格納している NIS マップを、NIS+Passwd テーブルに転送します。3 番目の例では、グループ関連情報で同じことを実行します。nisaddent コマンドの詳細は、『Solaris ネーミングの管理』のテーブルに関連する章を参照してください。

  5. publickey マップを転送します。

    ドメインの cred テーブルには、すでにいくつかの資格が格納されているため、cred テーブルに転送する publickey マップの内容によって、これらの資格が上書きされないように確認する必要があります。

    1. 初めに、publickey マップをファイルにダンプします。続いて、テキストエディタでそのファイルをオープンします。たとえば、次のように入力します。


      rootmaster# makedbm -u /var/yp/olddoc/publickey.byname /etc/publickey.xfr 
      rootmaster# vi /tmp/publickey.tmp
      

    2. publickey マップから、ログインしているワークステーションの資格を削除します。

      rootmaster に対しては、次のような行は、すべて削除してください。


      unix.rootmaster@doc.com public-key:private-key [alg-type]

    3. これにより、マップではなく「ファイル」の内容を cred テーブルに転送できます。nisaddent-a (追加) オプションを付けて実行します。


      rootmaster# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir Publickey
      

      ただし、この操作は DES 資格を cred テーブルに転送するだけです。cred テーブルに対する自分の LOCAL 資格は自分で作成する必要があります。

  6. オートマウンタ情報を転送します。

    nissetup ユーティリティは auto_master テーブルと auto_home テーブルを作成しますが、これらは標準の NIS+ テーブルとはみなされません。したがって、これらのテーブルに情報を転送するには、少し異なる構文が必要となります。


    rootmaster# nisaddent -y olddoc -Y auto.master -t auto_master.org_dir key-value
    rootmaster# nisaddent -y olddoc -Y auto.home -t auto_home.org_dir key-value
    

    NIS ドメイン名 (この例では olddoc) と同様、-m-y のオプションが必要です。しかし、NIS マップ名 (auto.master など) の前には -Y (大文字) を付けなければなりません。次に、オートマウンタの「テキストファイル」を転送するときに必要なように、標準の NIS+ テーブルであることを示す -t オプションを使用しなければなりません。この引数は、NIS+ ディレクトリオブジェクト (auto_master.org_dir) とテーブルの種類 (key-value) です。NIS+ テーブル名の後ろには必ず接尾辞 org_dir を追加してください。

  7. nisping を実行して更新内容を複製サーバーに送ります。

    nisping を実行すると、複製サーバーに変更が反映されます。


    master1# nisping domain 
    master1# nisping org_dir.domaincom. 
    master1# nisping groups_dir.domain
    

  8. テーブルに対しチェックポイントを実行します。

    この手順により、ドメインをサポートしている全サーバーが、それらの .log ファイルからディスク上のテーブルのコピーに新しい情報を転送します。ルートドメインを設定したばかりの場合、そのルートドメインにはまだ複製サーバーがないため、この手順はルートマスターサーバーだけが対象となります。nisping コマンドに -C (大文字) オプションを付けて実行します。


    rootmaster# nisping -C org_dir
    Checkpointing replicas serving directory org_dir.doc.com. :
    Master server is rootmaster.doc.com.
     Last update occurred at July 14, 1994
    Master server is rootmaster.doc.com.
    checkpoint succeeded.

    スワップ空間が不足している場合、サーバーはチェックポイントを正常に実行できませんが、そのことを通知しません。スワップ空間が十分あることを確認する方法として、niscat コマンドを使ってテーブルの内容をリスト表示する方法があります。スワップ空間が不足している場合、次のエラーメッセージが表示されます。


    can't list table: Server busy, Try Again.

    このメッセージ内容からはわかりませんが、これはスワップ空間の不足を示しています。スワップ空間を増やし、このドメインに再びチェックポイントを実行します。

NIS+ から NIS に情報を転送する

ここでは、NIS+ テーブルの内容を、Solaris 1.x の NIS マスターサーバー上の NIS マップに転送します。手順を次に示します。

  1. NIS+ サーバーにログインします。

  2. NIS+ テーブルを出力ファイルに転送します。

  3. 出力ファイルの内容を NIS マップに転送します。

NIS から NIS+ に情報を転送する際のセキュリティ上の留意点

この作業を実行するには、内容を転送する各テーブルへの読み取り権が必要です。

前提条件

マップを NIS サーバー上にあらかじめ作成しておかなければなりません。

NIS+ から NIS に情報を転送する - タスクマップ

表 9-3 NIS+ から NIS に情報を転送する
 

タスク 

 

説明 

 

指示の参照先 

 
 

NIS+ から NIS に情報を転送する 

 

NIS+ テーブルから Solaris 1.x の NIS のマスターサーバー上の NIS マップに情報を転送する 

 

「NIS+ から NIS へ情報を転送する方法」

 
       

NIS+ から NIS へ情報を転送する方法

  1. NIS+ サーバーにログインします。

    この例では、dualserver という名前のサーバーを使用します。

  2. NIS+ テーブルを出力ファイルに転送します。

    次に示すように、各テーブルごとに 1 回、-d オプションを付けた nisaddent コマンドを使用します。


    dualserver% /usr/lib/nis/nisaddent -d -t table tabletype > filename
    

    -d オプションは、table の内容を /etc 内の標準のファイル形式に変換して filename に出力します。

  3. 出力ファイルの内容を NIS マップに転送します。

    NIS+ の出力ファイルは、NIS マップ用の入力ファイルとして使用できる ASCII ファイルです。これらを NIS マスターの /etc ディレクトリにコピーし、通常の方法で make を実行します。


    dualserver# cd /var/yp
    dualserver# make
    

所有者および管理者に対する Passwd へのアクセス制限

ここでは、passwd テーブルのパスワードに関係する列に対する読み取り権を所有者とテーブルの管理者だけに制限し、しかも passwd テーブル内の残りの列に対する認証主体 (アプリケーションを含む) の読み取り権に影響を与えない方法を説明します。

この作業では、次のアクセス権を設定します。


                         Nobody  Owner   Group  World
Table Level Rights:      ----    rmcd    rmcd   ----
Passwd Column Rights:    ----    rm--    rmcd   ----
Shadow Column Rights:    ----    rm--    rmcd   ----

Passwd 列のセキュリティ上の留意点

前提条件

必要な情報

必要なのは passwd テーブルの名前だけです。

所有者および管理者に対する Passwd 列へのアクセス制限 - タスクマップ

表 9-4 所有者および管理者に対する Passwd 列へのアクセス制限
 

タスク 

 

説明 

 

指示の参照先 

 
 

所有者および管理者に対する Passwd 列へのアクセス制限 

 

NIS+ のコマンドを使って passwd.org_dir を変更し、所有者および管理者に対する passwd 列へのアクセスを制限する

 

「パスワード列へのアクセスを制限する方法」

 
       

パスワード列へのアクセスを制限する方法

  1. ドメインのマスターサーバーにログインします。

    この例ではルートマスターサーバー rootmaster を使用します。

  2. 現在のテーブルと列のアクセス権を確認します。

    niscat -o コマンドを実行します。


    rootmaster# niscat -o passwd.org_dir
    

    この作業では、次のような既存のアクセス権になっていることを前提としています。


    Access Rights    : ----rmcdrmcdr---
    Columns          :       
                         [0]  Name           		: name
                               Access Rights : r-----------r---
                         [1]  Name           		: passwd
                               Access Rights : -----m----------
                         [2]  Name           		: uid
                               Access Rights : r-----------r---
                         [3]  Name           		: gid
                               Access Rights : r-----------r---
                         [4]  Name           		: gcos
                               Access Rights : r----m------r---
                         [5]  Name           		: home
                               Access Rights : r-----------r---
                         [6]  Name           		: shell
                               Access Rights : r-----------r---
                         [7]  Name           		: shadow
                               Access Rights : r-----------r---

    自分のアクセス権が異なる場合、別の構文を使用する必要があります。詳細は、『Solaris ネーミングの管理』のアクセス権に関連する章を参照してください。

  3. テーブルのアクセス権を変更します。

    nischmod コマンドを実行して、テーブルのオブジェクトレベルのアクセス権を ----rmcdrmcd---- に変更します。


    rootmaster# nischmod og=rmcd,nw= passwd.org_dir
    

  4. 列のアクセス権を変更します。

    nistbladm コマンドを -u オプションを付けて使用して、passwd 列 および shadow 列のアクセス権を次のように変更します。

    passwd ---- rm-- ---- ----

    shadow ---- r--- ---- ----


    rootmaster# nistbladm -u passwd=o+r, shadow=o+r passwd.org_dir
    

  5. 新しいアクセス権を確認します。

    手順 2 の場合と同様、niscat -o コマンドを実行します。アクセス権は、手順 2 の出力と同じでなければなりません。

テーブルの生成のまとめ

NIS+ テーブルの生成に必要な手順のまとめを次に示しています。これは、最も簡単な場合を想定しています。このため、まとめを参考として使用する前に、作業の詳細を十分に理解しておいてください。また、このまとめでは各コマンドに対するサーバーの応答は示していません。

表 9-5 まとめ : NIS+ テーブルへのファイルの転送

作業 

コマンド 

NIS+ クライアントにログインする 

rootmaster#

転送するファイルの作業用コピーを作成する 

# cp /etc/hosts /etc/hosts.xfr

検索パスに /usr/lib/nis を追加する

# PATH=$PATH:/usr/lib/nis; export PATH

各ファイルを 1 つずつ転送する 

# nisaddent -m -f /etc/hosts.xfr hosts

publickey ファイルから古いサーバー資格を削除する

# vi /etc/publickey.xfer

資格テーブルに publickey ファイルを転送する

# nisaddent -a -f /etc/publickey.xfr cred

オートマウンタファイルを転送する 

# nisaddent -f auto.master.xfr -t auto_master.org_dir ¥

key-value

# nisaddent -f auto.home.xfr -t auto_home.org_dir key-value

テーブルディレクトリにチェックポイントを実行する 

# nisping -C org_dir

表 9-6 まとめ : NIS+ テーブルへのマップの転送

作業 

コマンド 

NIS+ クライアントにログインする 

rootmaster#

検索パスに /usr/lib/nis を追加する

# PATH=$PATH:/usr/lib/nis; export PATH

各マップを 1 つずつ転送する 

# nisaddent -m -y olddoc hosts

publickey マップをファイルにダンプする

# makedbm -u /var/yp/olddoc/publickey.byname > ¥

/etc/publickey.xfr

新しい資格を削除する  

# vi /etc/publickey.xfr

publickey ファイルを転送する

# nisaddent -a -f /etc/publickey.xfr -t cred.org_dir ¥

publickey

オートマウンタマップを転送する 

# nisaddent -y olddoc -Y auto.master -t auto_master.org_dir ¥

key-value

# nisaddent -y olddoc -Y auto.home -t auto_home.org_dir ¥

key-value

テーブルディレクトリにチェックポイントを実行する 

# nisping -C org_dir

表 9-7 まとめ : NIS+ テーブルを NIS マップに転送する

作業 

コマンド 

NIS+ サーバーにログインする 

dualserver#

NIS+ テーブルをファイルに転送する 

# /usr/lib/nis/nisaddent -d [-ttable] tabletype > filename

ファイルを NIS マップに転送する 

# makedbm flags output-file NIS-dbm-file

表 9-8 まとめ : パスワード列へのアクセス権を変更する

作業 

コマンド 

ドメインのマスタサーバーにログインする 

rootmaster#

テーブルの既存の権利をチェックする 

# niscat -o passwd.org_dir

テーブルに新しい権利を割り当てる 

# nischmod og=rmcd,nw= passwd.org_dir

列に新しい権利を割り当てる 

# nistbladm -u passwd=o+r shadow=n+r passwd.org_dir

新しい権利を確認する 

# niscat -o passwd.org_dir