何の因果か応報か、今時Solaris2.6(爆)でメールサーバ動かしてくれと頼まれた。
どーしてそーゆー事になったのかは、我ながら信じられない事情なので省く。 しいていえば太陽のせいだ。 でまあ、OSやらsendmailやらqpopperやら、指定されたソフトのインストール自体は問題なかったのだが、ちょっと困ったのがここに数百人分のユーザ登録が必要、ということだったのである。 Solaris2.6ではユーザ登録はadduserコマンドで行える。ユーザ自体の登録とホームディレクトリ掘りは、このコマンドで一発である。 が、これを使ってもadmintoolを使っても、初期登録時はパスワードロックされており、必ずパスワードを登録しなければ使用開始できない。 問題は、このパスワードの設定である。 初期パスワード自体はアカウント名からのハナモゲラでよいということなので、自動生成できるとして、問題はそれをどうやってSolaris君に喰わせるか。 ちょっと見てみたらSolaris2.6のpasswdコマンドは、入出力ともstderrであり、普通のシェルスクリプトでリダイレクトでコントロールするのが難しい。つまり、 passwd foo 12346 passwd baz 12346 … みたいなコマンドをズラズラ書いたシェルスクリプトで一括登録!ってわけにはいかないんである。 cryptを使って自前で暗号化したpasswdファイルを生成して差し替えてしまおうか、と思ったが、よく考えりゃあshadowパスワードだ。んな事やったことないからなぁ。Linuxみたいにshadow on/offができりゃあいいのだが、残念なことにSolaris2.6君はできないみたいだ。 いずれにしてもこの方法だと、差し替える時にシングルユーザモードでないとまずそうだし、現に生きて動いているサーバの場合、こりゃあちょっとまずそうだ。 うううううううううううううん。 と10分ばかり考えた末、結局、telnetソフトのTeraTermを立ち上げた。 timeout = 1 fileopen fhandle 'passwd.txt' 0 :loop filereadln fhandle uname if result goto fclose filereadln fhandle passtext if result goto fclose passcmd = 'passwd ' strconcat passcmd uname sendln passcmd wait "New password:" sendln passtext wait "Re-enter new password:" sendln passtext waitln "#" goto loop :fclose fileclose fhandle TeraTerm用に、概略上のようなマクロを書いた。 要するに、 ユーザー名 パスワード … というファイルを順次読み込んで、自動的にpasswdコマンドを次から次へと動かしてしまえ、という甚だカッチョ悪い方法である。おまけに死ぬほど遅い。 がこれにもいいところはあって、あくまでも正規のpasswdコマンドを通しているので間違いは少ないし、システムを停止する必要もない上、動かしっぱなしで帰ってしまえば翌日には終わってる(笑)。 まあ、どう考えても良い方法ではないが、どうせ一発ものだし、うまくいったからどうでもいいか(爆)
by SIGNAL-9
| 2005-03-25 18:42
| TIPSとかKludgeとか
|
カテゴリ
全体 一般の話題 奇妙な論理 奇談・異聞 秋葉原 研究(笑) 町歩き 古い話 東電災害 電算機関係の話題 情報保護・セキュリティ 読んだり見たり TIPSとかKludgeとか 拙作ソフトウェア 未分類 最新の記事
記事ランキング
以前の記事
最新のトラックバック
その他のジャンル
ブログジャンル
画像一覧
| ||||||||||||||||||||
ファン申請 |
||