Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)

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

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


注 –

NIS+ は、将来のリリースではサポートされなくなる可能性があります。NIS+ から LDAP への移行支援ツールは、Solaris 9 リリース以降で使用できます (『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』を参照)。詳細については、http://www.sun.com/directory/nisplus/transition.html を参照してください。


テーブルの設定


注 –

NIS+ テーブルを生成する作業は、この章で説明する NIS+ コマンドセットを使用する方法よりも、パート I で説明した NIS+ 設定スクリプトを使用した場合の方が簡単です。この章で説明する方法は、NIS+ に精通した管理者や、設定スクリプトでは提供されない標準以外の機能や構成を必要とする管理者だけが使用してください。さらに、Solaris 管理コンソール ツールをお持ちの場合は、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+ セキュリティを使い慣れていない場合は、第 11 章「NIS+ のセキュリティの概要」を参照してから 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 シェルのユーザーの場合の例を示します。

    C シェルの場合


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

    Bourne シェルまたは Korn シェルの場合


    rootmaster# PATH=$PATH:/usr/lib/nis
    rootmaster# export PATH
  5. nisaddent を使用して、次のファイルを 1 つずつ転送します。


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

    publickey、automounter、passwd、および 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

    この作業をルート以外のサーバーから実行する場合、ルート以外のサーバーは、サポートするドメインの上のドメインに所属することに注意してください。つまり、ルート以外のサーバーはもう 1 つのドメインのクライアントです。たとえば、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. ドメインのクライアントとして実行した場合、このコマンドにドメイン名を指定する必要はありません。

    エントリが NIS+ テーブルに転送されたことを確認するには、niscat コマンドを使用します。詳細については、第 19 章「NIS+ テーブルの管理」を参照してください。


    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 度に 1 つずつ転送します。aliases, bootparams, ethers, group, hosts, netgroup, netmasks, networks, passwd, protocols, rpc, services

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

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

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

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

NIS マップからテーブルを生成する際のセキュリティについて

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

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

NIS マップからテーブルを生成するための前提条件

必要な情報

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 ファイルの場合は手順 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 コマンドの詳細については、第 19 章「NIS+ テーブルの管理」を参照してください。

  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 サーバー上にあらかじめ作成しておかなければなりません。

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 テーブルの名前だけです。

所有者および管理者に対する 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---

    自分のアクセス権が異なる場合、別の構文を使用する必要があります。手順については、第 15 章「NIS+ のアクセス権の管理」を参照してください。

  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.ortg_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 [-t table] tabletype > filename

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

% makedbm flags output-file NIS-dbm-file

表 9–8 Passwd 列へのアクセスの制限 -コマンドのまとめ

作業 

コマンド 

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

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