VineLinuxパフォーマンスアッププロジェクト:0205
■ID・パスワードが正しくてもログインに失敗する場合には■
FTPサーバにログインする際、ID・パスワードが正しくてもログインに失敗する場合があります。
そのような場合に確認すべきポイントと、設定の変更方法をご紹介します。
※以下はProftpdサーバを前提としております。
FTPコマンドやFTPクライアントソフト(gFTPやFFFTPなど)ではログインに失敗した旨のメッセージが表示されるだけで、原因まで把握することはできません。
ところが、ログイン履歴等を記録するファイル(/var/log/secure)を見ると、以下のようにエラーが出力されています。
USER [ユーザ名] (Login failed): Invalid shell: '/bin/bash'
これは、ログインシェルにできるプログラムを定義している/etc/shellsにシェルが記述されていないために発生します。
通常は"/bin/sh"や"/bin/csh"等のシェルが定義されていますが、これらの定義が何らかの原因で消えてしまった場合、ユーザはログイン後に利用できるシェルがないことになります。
このような状況でもFTPとしてユーザのログインを許可する場合には、Proftpdの設定ファイルである/etc/proftpd.confに以下のような記述を加えます。
RequireValidShell off
記述する場所は設定ファイル中のどの部分でもかまいませんが、追記した場所がわかりやすいようにしておくとよいでしょう。
これでProftpdデーモンを再起動するとログイン可能になります。
※この方法はログイン後のデフォルトシェルが定義されていないユーザでもログイン可能にすることを許可しているため、セキュリティ的におすすめできません。
/etc/shellsに適切なシェルを定義し、このオプションを有効にすることをおすすめします。