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

Procedure特定のデータベースを使用するために Makefile を変更する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の第 9 章「役割によるアクセス制御の使用 (手順)」を参照してください。

  2. all という語で始まる行に、追加したいデータベース名 (1 つまたは複数) を追加します。


    all: passwd group hosts ethers networks rpc services protocols \
    	netgroup bootparams aliases netid netmasks \
    	audit_user auth_attr exec_attr prof_attr \
      auto_direct auto_home auto_direct.time auto_home.time

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

  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 は、作成するマップの名前です。