とあるエンジニアの備忘log
2012年12月18日火曜日
NIS 設定まとめ (RHEL/CentOS/Ubuntu編)
NISの設定方法をメモっておきます。 最初に RHEL/CentOS での方法を記載し、最後に Ubuntu の場合の差分を記載します。 ### RHEL/CentOS編 CentOS 6.3でやってみました。 NISに関連するパッケージは以下です。 - ypserv : NISサーバ - ypbind : NISクライアントとNISドメインをバインドするデーモン - yp-tools: NISクライアントプログラム集 ypbind と yp-tools はデフォルトで入っているはず。 ypserv はサーバー側にだけ必要になります。 #### NISサーバー側の設定 # yum install ypserv でインストールします。 `/etc/sysconfig/network` に以下のようにNISドメイン名を追加する。NISドメイン名はとりあえずサーバーとクライアントで共通であればよいです。普通、ホスト名のドットより後ろの部分を使います。 NISDOMAIN=
ypserv サービスを起動しておく。 `/var/yp/Makefile` の `all:` ターゲットの部分を見ればどのマップ(=NISで管理されるファイル)が作成されるかがわかります。 とりあえずデフォルトのままでOKです。 NISデータベースを初期化します。 32bit OSなら # /usr/lib/yp/ypinit -m 64bit OSなら # /usr/lib64/yp/ypinit -m を実行する。 #### NISクライアント側の設定 RHEL/CentOS なら ypbind と yp-tools はデフォルトで入っているので、特にインストールするものはなし。 `/etc/yp.conf` に以下のような設定を記載する domain
server
`/etc/nsswitch.conf` を開き passwd: files shadow: files group: files のようになっているところを passwd: nis files shadow: nis files group: nis files のように書きかえます。 これで、`passwd`, `shadow`, `group` は NIS ⇒ ローカルファイルの順番に見にいってくれるようになります。 `/etc/nsswitch.conf` の設定を間違えると最悪起動しなくなるので、ご注意ください。(`files` を `file` と書き間違えて、起動しなくなった経験あり)。 もし起動しなくなった場合、KNOPPIX とかで起動して、ハードディスクをマウントし、 `/etc/nsswitch.conf` を正しく修正するのが手っ取り早いと思います。 そして ypbind のサービスを起動する。 # ypwhich を実行し、でNISサーバーとバインドできているのを確認できればOKです。 ちゃんと動いていれば # ypcat passwd とすることでマップの中身が読めるはず。 ユーザー認証を NISで管理できても、ホームディレクトリが作られていなかったら、まともにログインできません。したがって、NIS単独で使うことはあまりなくて、NIS と NFS (さらには autofsも)と組み合わせるのが通常の運用形態だと思います。 NFSのセットアップ方法は次回まとめます。 最後に `yppasswd` コマンドでNIS経由でパスワード変更できるようにします。 NISサーバー側で `yppasswdd` サービスを起動させておきます。すると、NISクライアント側は `yppasswd` コマンドでパスワード変更できるようになります。 ちゃんと設定したつもりなのに、最初は $ yppasswd とすると yppasswd: yppasswdd not running on NIS master host ("localhost.localdomain") というエラーメッセージが出てうまくいきませんでした。 しばらく考えて、エラーの意味がわかった。 NISサーバーもNISクライアントもホスト名が `localhost.localdomain` になっていて、混同されていたようです。 CentOS6.3 はインストーラーがバグっているみたいで、インストール時にホスト名に何を入力しても、結局 `localhost.localdomain` になってしまう。 (RHELのインストーラーは大丈夫です。) で、そのままほったらかしにして、サーバー側もクライアント側も `localhost.localdomain` でかぶっていると `yppasswd` が動きません。 ホスト名は `/etc/sysconfig/network` で HOSTNAME=<ホスト名> で設定できるので、ここで NISサーバーとNISクライアントに別々の名前をつけてあげましょう。 例えば、 `HOSTNAME=my.nisserver` というホスト名にしたとする。 そして、もう一回 # /usr/lib/yp/ypinit -m としてあげると next host to add: my.nisserver next host to add: のように 今つけた、NIS サーバー名が入っている。 そして、クライアント側の `/etc/hosts` に 192.168.11.5 my.nisserver のように NIS サーバーのIPアドレスとの対応を書いておけば `yppasswd` がうまくいきます。 以上が、RHEL/CentOSの場合のやり方です。 ### Ubuntu編 Ubuntu 12.04LTS でのやり方も簡単にまとめておきます。 Ubuntu の場合、サーバーもクライアントも $ sudo apt-get install nis でインストールします。 インストール途中で NISドメインを聞かれると思いますので適当なドメイン名を入れます。 このNISドメイン名は `/etc/defaultdomain` に書き込まれます。 NISサーバー側は `/etc/default/nis` という設定ファイルを開いて NISSERVER=false という行を NISSERVER=master に変更します。 ypserv サービスを起動し $ sudo /usr/lib/yp/ypinit -m でデータベース作成します。 NISクライアント側は `/etc/yp.conf` を編集して domain
server
という設定を記載します。 `/etc/nsswitch.conf` を開き passwd: compat shadow: compat group: compat のようになっている部分を passwd: nis compat shadow: nis compat group: nis compat のように変更。 ypbind サービスを起動します。 なお、Ubuntu 12.04 ではデスクトップマネジャーが lightdm になっていて、ローカルに存在するアカウント名しか選択できないようになっております。 そのままでは任意のアカウント名が入力できないので NISで管理しているアカウント名を入力ができないことになります。 そこで、以下のように入力します。 $ /usr/lib/lightdm/lightdm-set-defaults -m true ログイン画面に「ログイン」という項目が出てきて、任意のアカウント名が入力ができるようになります。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿