FreeBSD 8のUserminでパスワード変更がうまくいかない件

投稿者: | 2014年3月12日

年度末進行でテンパっているラット渡辺です。

昨夜、個人的にサーバーのお世話してる、A様から、「パスワード変更したいんだけどどうしたらいい?」と問い合わせがありました。

まあ、とりあえず対象サーバーに Usermin をインストールして、
使い方説明替わりのスクショ(スクリーンショット)画像送ってあげました。
「スクショ」ってなんか「スク水(スクール水着)」っぽくてアレですね(笑)。

usemin_changepass

すると、「なんかできないです~」との返事がありました。困りましたねぇ~。というわけで、さっそく原因調査です。

実際にやってみると、変更ボタン押した跡が真っ白になり、確かに変更されていませんでした。困りました。

「困ったときはログを見ろ」という鉄則なんですが、ログがどこにあるかもわからない・・と。

FreeBSDなんだから、設定ファイルは /usr/local/etc/usermin/ にあるだろうということで
# cd /usr/local/etc/usermin
# ls
とやると、Webmin と同じように miniserv.conf がありますね。
# grep log miniserv.conf
とやると、

logfile=/var/log/usermin/miniserv.log
errorlog=/var/log/usermin/miniserv.error
pidfile=/var/log/usermin/miniserv.pid
 (後略)

なるほど。エラーログファイルの場所がわかりました。さっそく眺めます。

# less /var/log/usermin/miniserv.error
 (中略)
 Error: Failed to create new PTY - try installing the IO::Tty Perl module
 エラー
 -----
 パスワードの変更に失敗しました。 : Failed to create new PTY - try installing the
 IO::Tty Perl module

こんなエラーが出てました。

IO::Tty ってPerlモジュールは、p5-IO-Ttyなんたらって感じでFreeBSDのパッケージ名になるだろうから、

# pkg_info | grep p5-IO-Tty
 p5-IO-Tty-1.10 Flexible I/O Perl5 module that allows manipulation of pseud

と、なんだインストールされてるじゃねーか。と思うわけですが、usermin 君によると、うまくインストールされてないわけですから、とりあえず再インストールしてしまいましょう。

Webmin/Userminで使われているパッケージなので、強制上書きインストール(FORCE_PKG_REGISTER)が必要になります。

FreeBSDのrootシェルって csh かshのどっちだったけか (Linux だと sh) とさらっと確認。

# env | less
 (前略)
 SHELL=/bin/csh
 (後略)

ああ、cshね、と。んじゃ setenv で変数を設定してインストールしてしまいましょう。

# cd /usr/ports/devel/p5-IO-Tty/
# setenv FORCE_PKG_REGISTER yes
# make install
# unsetenv FORCE_PKG_REGISTER

なんてやると、強制再インストールが完了します。これでUserminからパスワード変更をすると、無事変更されました。

めでたしめでたし。(作業時間20分、メモ時間20分)

コメントを残す