不定期連載準特別テーマ
/背景/RedHat7.0.1J/NISサーバ on Opti/とはいえ結構冷や汗をかきました/赤帽のNISクライアント設定/赤帽にautofsをインストール/だから本のとおりにやれっての!!/本命ソルッパチ登場:サーバのホームを奪え!/怪しい輸出品/ルートのお宿は?/
とにかくそらりんでできることを何でもやってみようという理由でNISの構築にチャレンジした。今WebDBサーバとして実稼働しているPowerEdgeは、デスクトップクライアントのOptiとNFS共有はしているが、NISでサーバのホームをマウントとかはしてない。というのもPowerEdgeはまだデータベースを使う(家計簿をつける)ときにしか使わないので、さすがに電気代やマシンの寿命のことを考えると終日つけっぱなしということはない。Optiだけを単独に使うほうが時間的には長い。おまけにうちのSolarisマシンはまだこの2台だけだし、だからPowerEdgeのホームをOptiにマウントする必要もないしかえってめんどくなるというわけだ。
だがNISはやってみたい。とするとOptiをサーバにして、クライアントは・・・600EにLinuxということになるだろう。
しかし、この前MLDがWin98にインストールできなくなりムキーと思ったわたしは600Eに2000proを入れてしまった。どーすると思っていたところに、UNIX
USERの記事に「2000と赤帽のデュアルブート法」というのが書いてある。さっそくやってみることにした。
2001年9月21日
UNIX USER2001年10月号の154ページ「ディストリビューション・オフィシャルFAQ/RedHatLinux」に書いてあるとおりにすればできるのであえてこのヘボが書く必要もあるまい。だが、いくつか特記すべき事項はある。
このようにして、Win2000とRedHat7.0.1JのHDDからのデュアルブートに成功した。以前できるはずのWin98とこれのデュアルブートが場合によってできたりできなかったりしたのより、むしろ確実な処理といえよう。すばらしい。
2001年9月21日
次はOptiplexのそらりんでNISサーバを起動する。方法はSolarisReview第2弾のNIS特集と、UNIXUSER2001年10月号の「Solaris道を行く」を参考にした。
全体の流れはSolarisReviewに従った。ただ注目すべきは、/var/yp/etc/以下の設定フォルダである。/etc/以下にあるネットワーク関係の設定フォルダをそこにコピーするのだが、もとからないいくつかのフォルダを、ypinit
-mをかますときに要求され、なければエラーメッセージが出る。SolarisReviewではこれは無視して大丈夫と書いてあったが、「Solaris道」のほうでは要求されるファイルを名前だけ、ダミーで置いておくことを推奨している。どのエラーが無視してよくどのエラーが致命的なのか区別のつかないわたしとしてはむろん、後者を選んだ。するとマジで「本日はよいお日和で、心配されたエラーもなく、無事にサーバがセットアップされました」というメッセージが出てうれしかった。
2001年9月21日
実はNISサーバ導入にあたって、それまでのネットワーク環境が殺されてしまったか!と冷や汗をかくことがいくつかあった。全部解決したのだが。
2001年9月21日
さてクライアントのほうは?同じ処理をしたあとypinit -cをかますSolarisと違って、赤帽だとypinitのオプションはマスタサーバの-mとスレーブサーバの-sしかない。そのかわり、Linux
Confで(じゃなくてもいいんだろうたぶん)NISサーバを指定するのだ・・・と、実はそれだけではダメ。Linuxで使ってるMD5パスワードというのを無効にしなければ。それはインストールのときにチェックをはずしておけばいいのだが、チェックしたままインストールしてしまった場合はauthconfigとコマンドする。すると設定画面が現れるからMD5のチェックの米印(違うって)をはずしてやればよい。
わたしの場合ちゃんと「Solaris道」にそれが書いてあったのにきちんと読まずにLinuxConfで先にNISの設定をしてしまってから、authconfigでMD5を解除した。するとauthconfigの設定が反映されると同時にいきなりNISが走り出してすげえびっくりした。
後からわかったことだが、やっぱりauthconfigで設定しないといけないみたい。LinuxConfでサーバを設定したはずなのに接続できてなくて、authconfigを起動したらNISの設定全然されてなくて、こっちで設定したらいきなり走り出した。
2001年9月21日
これも「Solaris道」に書いてあるとおりだ。ただしネットでゲットしたautofsパッケージだが・・・赤帽7.0.1JのGnoRPMはちと不安定で、パッケージを焼いたCD-Rから追加しようとすると致命的なエラーと言って閉じてしまう。困ったもんだ。だが、それをやるせなくHDのどっかのフォルダにコピーして、なんとなくファイルマネージャ上で右クリックして「インストール」というのがあったので選んでみたらインストールされた。そ、そうだったのか・・・。
2001年9月21日
さてここまで四苦八苦したNIS設定。最終的にやりたいことは、赤帽にそらりんのユーザホームディレクトリをマウントすることである。ユーザnonikoがお毒味役。まずはデフォルトの/home/nonikoディレクトリを削除(無謀なことを・・・名前変えるぐらいにしとけよ・・・)
それから、Linuxの場合は直接/home/以下のディレクトリに読み書きすると危ないらしいので、/import/home/というマウントディレクトリを作って置いてそこにマウントし、そこから/home/以下にシンボリックリンクを張れと、Solaris道には書いてあった。
さてやってみるが、どうもautomountがうまくいってないようだ、と見えた。でも、手動で
mount -t NFS Opti:/export/home/noniko /import/home/noniko
とやって、シンボリックリンク/home/nonikoを開けてみると・・・そらりんCDEの設定ファイルと赤帽Gnomeの設定ファイルが両方突っ込まれた偉くにぎやかなのに子ホームが現れる。だ、だいじょうぶなのか?混乱しないのか?・・・とにかく、NISは生きているらしいということがわかる。問題は、自動マウント・・・
ふと「Solaris道」を読み返す。「ではユーザーmayumi(かなんか)でログインしてみてください。そして自分のホームディレクトリを確かめてみましょう。サーバのホームがマウントされているのがわかるはずです」と書いてある。
わたしはというと・・・rootでログインして、ユーザーnonikoのホームを開いて、ないなあと思っていた。
ここまでやったんだから、本当に、「そのとおりに」やってみよう。rootからログアウトして、nonikoでログイン。それから画面の隅にある「ホームディレクトリ」をつつく・・・
おおー。
おおおおー。
さっきのnonikoのホームディレクトリが!そういうことだったのね?!なーるーほーどー。「本の通りにやっているつもりで実は我流でハマっているだけではないですか」とくろうとさんに指摘をされる初心者の行動というのは、つまりはこういうことか。わたしはてっきり、mayumiさんにはroot権限がないから、そうやって確かめてるだけなのかと思っていた・・・
にしても。これで、赤帽クライアントでNISログインはできることがわかった。すごい。Solarisもすごいが赤帽もすごい。PC-UNIXとは言うが、やっぱりいわゆるパソコンとは一線を画するものがあるんだなと思った・・・UNIX、網がなければただの箱。
で、これからどうするか?・・・設定できたんで、これで満足です。ま、Optiと赤帽は、いつでも再セットアップ覚悟の実験用マシンとして使い倒すでしょ。
2001年9月21日
そうこうしているうちに、結局PowerEdgeにNISサーバを入れてしまった。そしてoptiはそのクライアントに成り下がった(最初からそうしたかったんだってよ)。となると、Solaris同士ならもっと簡単にサーバのホームをマウントできるはず・・・・と思ったのが、実はこれが難しかった!しくみさえ理解すれば、難しくないのだが!
1)サーバ上でユーザnonikoを作る例。今rootでグラフィカルログインした状態でホームディレクトリは/export/home/nonikoにしたところです。もちろん、rootでのログインはすべてを無に返しても人生に一片の悔いなしという人だけがやってください。
2)作ったら、一度rootを抜け、今作ったユーザで一度サーバにグラフィカルログインする。実はこれをしないとデスクトップ情報がホームディレクトリに書き込まれないようなのだ。
3)適当な権限に戻った後、/etc/passwdと/etc/shadowをそれぞれ/var/yp/etcにコピーする。
4)コピーした/var/yp/etc下の両ファイルからルート情報を消す。
5)/var/yp/etc/passwdファイルのユーザ情報で、そのホームディレクトリを/export/homeから/homeに書き換える。そりゃそうだと思うよな。
6)一方で/etc/passwdのほうからはユーザ情報を消す。
7)/bar/yp/etc/auto_homeの記述が
* power-edge:/export/home/&
になっていれば、このファイルは何もしなくてよい。
8)var/ypに移り、makeをかます。auto_homeを変えた場合はmake auto.homeもかます。
これで完璧である。クライアントマシンを再起動してもちゃんとグラフィカルログインできる。
さて、その解説である。これでようやく、この書き込みも属性変更もできないくせに誰のホームでもない/homeというフォルダはなんなんだよ?という疑問が解消した。これは、NISクライアントマシンのためのもので、クライアントマシン上で/homeにアクセスするとサーバの/export/homeがそこにマウントされるためのものなのだ。
そして、Solarisのオートマウント機能というのは、「呼ばれて飛び出てジャジャジャジャーン方式」である。つまり公開されているサーバのnfsフォルダは、クライアントからアクセスされて初めてマウントされるのだ。
NISでホームディレクトリにオートマウント機能を使うと決めた場合、クライアントのホームディレクトリは/homeにマウントされることが決まっているのだ。これは/var/yp/etc/auto_masterというファイルに指定してある。
だから、きちんと設定がされていれば、クライアントマシンからユーザでログインするということで、/homeにアクセスするから、/export/homeが呼ばれて飛び出ることになる。
ところが、このとき一度サーバでグラフィカルログインしてデスクトッププロファイルのファイルを書き込んでおかないと、クライアントからはデスクトップの適当な設定が読み込めずログイン画面に戻ってしまうというエラーになる。
ただし、これでは5)のように、いちいち/var/yp/etc/passwdの内容を書き換えなければならずめんどくさい。という場合は別にサーバの/export/homeをユーザの/export/homeにマウントするようにしてもいい。いいのだがこれにはこれでちょっと問題がある。
2001年10月09日
この/export/homeフォルダだが、WebStartでソルッ八をインストールするとき、デフォルトだとこのフォルダにほとんどのHD容量が割り当てられてしまう。全部で9GのHDDだと7G近くも・・・で、カスタムインストールで2G近くとるようにして、バックアップデータやソースファイルなどもそこに入れてデータフォルダ扱いにして使っていた。
そこにサーバのホームをマウントすることにしてみた。上の状況で、いちいちpasswdのユーザホームディレクトリの場所を書き換えたくないという理由からだ。もちろんそうした既存データは消してきれいにする。そうしてマウントしようとする。
mount -F nfs power-edge:/export/home /export/home
今、サーバはpower-edge, クライアントはoptiである。ところが、「/export/homeは使用中です」と出る。どうやっても出る。この回答はSolarisReviewから探し出した。
要するに、/export/homeというフォルダには、すでにインストールのときに2G切ったスライスc0t0d0s7が、マウントされているというのである。
なーるほど。これは/etc/vfstabを見ればわかる。見ればわかるだけではない。このスライスc0t0d0s7のマウント先を・・・作って置いた適当なフォルダたとえば/localhomeなどというものに書き換えてやれば・・・/export/homeは解放されるのだ。
だが、このままではまだダメだ。ログインすると、「ホームディレクトリがありません、復旧セッションを実行するかやめれ」と言われる。どうして?それはauto_masterファイルのせいである。ここに
/home auto_home
と書いてある記述を
/export/home auto_home
と書きかえてやらなければならないというわけだ。
よーやくわかった。けどわたしはせっかくhomeフォルダがあるんでhomeフォルダをそのまま使うことにした。今度インストールするときはクライアントに/export/homeを作るのやめよう。
2001年10月09日
こうして一般ユーザはクライアント・ホームレスでもいいということになった。だがルートはどうか。さすがにルートの基地をサーバに間借りするのは危険すぎる。もちろんコンソールでバリバリ操作回せる人ならば、コンソールでのログインでは「この宿なしめ!」と怒られながらも「じゃあ/を貸してやるから汚すなよ(とまでは言わない)」と次の操作を受け付けてもらえる。だがGUI依存症主婦にとってGUIを使うなというのはSolarisを使うなというのと同じだ。
今、サーバpower-edgeのrootのホームディレクトリは、実は/export/homeにある。これはまだpower-edgeがここまでサーバとして活躍し始める前に、rootログイン依存症でもある主婦はrootで作業しまくる際に、デフォルトのルートのお宿である/の下にいろんなファイルが溜まるのがよろしくないので、/etc/passwdファイルを書き換えて強制移住させたのだ。だがこれをやったらデスクトップアイコンからパネルからNetscapeのブックマークから全部一から設定やりなおしなので非常にめんどくさい。
ではクライアントoptiのrootのホームは?・・・/rootというディレクトリをつくって、そこに引っ越した。そうして、
サーバもクライアントも、それぞれ/etc/passwdにはrootとdaemon、及び半人半魔postgres(サーバのみ)以外の情報はおかない。
サーバもクライアントも、それぞれ/var/yp/etc/passedにはroot情報をおかない。
サーバもクライアントも、それぞれのnsswitch.confには
passwd files nis
group files nis
と書いておく。
実はこれを nis files とやったら、最初の起動のときrootがopenwin(英語版)にさらわれてしまった。PgSQLのpostmasterの起動スクリプトをいじったときにpostgresがさらわれてしまうのと同じ症状である。ゆえにrootのお宿はそれぞれのマシンでローカルにひそんでいるべきである。
2001年10月09日