Oracle® Solaris 11.2 ディレクトリサービスとネームサービスでの作業: DNS と NIS

印刷ビューの終了

更新: 2014 年 7 月
 
 

Makefile エントリの変更

次の手順では、Makefile にデータベースを追加したり削除したりする方法を説明します。

特定のデータベースを使用するように /var/yp/Makefile を変更する方法

この手順を実行するには、NIS マスターサーバーがすでに構成されている必要があります。

  1. 管理者になります。

    特定のタスクを実行するための適切な権利を取得する方法の詳細については、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  2. all という単語で始まる行を、追加したいデータベースの名前を追加することによって変更します。
    all: passwd group hosts ethers networks rpc services protocols \
    netgroup bootparams aliases netid netmasks \
    audit_user auth_attr exec_attr prof_attr \
    auto_direct 

    エントリの順序は任意ですが、継続行の始まりの空白はスペースではなくタブにしてください。

  3. Makefile の最後に次の行を追加します。
    auto_direct: auto_direct.time
    auto_home: auto_home.time
  4. ファイル中央に auto_direct.time エントリを追加します。
    auto_direct.time: $(DIR)/auto_direct
    @(while read L; do echo $$L; done < $(DIR)/auto_direct
    $(CHKPIPE)) | \ (sed -e "/^#/d" -e "s/#.*$$//" -e "/^ *$$/d"
    $(CHKPIPE)) | \ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto_direct;
    @touch auto_direct.time;
    @echo "updated auto_direct";
    @if [ ! $(NOPUSH) ]; then $(YPPUSH) auto_direct; fi
    @if [ ! $(NOPUSH) ]; then echo "pushed auto_direct"; fi

    次に、各変数について説明します。

    • CHKPIPE は、次のコマンドに結果を渡す (パイピングする) 前に、パイプ (|) の左側の動作が正しく行われたことを確認します。パイプの左側の動作が正しく行われなかった場合は、「NIS make terminated」というメッセージが表示されてプロセスは終了します。

    • NOPUSH は、makefileyppush を呼び出して新しいマップをスレーブサーバーに転送することを防止します。NOPUSH が設定されていない場合は、転送は自動的に行われます。

    先頭にある while ループは、入力ファイル内のバックスラッシュで拡張された行をすべて削除するように設計されています。sed スクリプトはコメント行と空行を削除します。

    ほかのすべてのオートマウンタマップ (auto_home や、ほかのデフォルト以外のすべてのマップなど) でも、同じ手順に従います。

  5. make コマンドを実行します。
    # make mapname

    ここで、mapname は作成するマップの名前です。

データベースを削除するために Makefile を変更する方法

Makefile で特定データベースのマップを作成しない場合は、Makefile を次のように編集してください。

  1. all 規則からデータベースの名前を削除します。
  2. 削除するデータベースのデータベースルールを削除またはコメントアウトします。

    たとえば、hosts データベースを削除するには、hosts.time エントリを削除してください。

  3. time ルールを削除します。

    たとえば、hosts データベースを削除するには、hosts: hosts.time エントリを削除してください。

  4. マスターサーバーとスレーブサーバーからマップを削除します。