Linux -> よくあるトラブル

ftpでログインできない

原因:/etc/ftpusers の設定内容

/etc/ftpusers には ログイン不可ユーザを記述する。
以下の例の場合 root も記述されているので root でのログインはできない
/etc/ftpusers
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp

 <以下省略>


 rootログインを許可する場合、以下のようにコメントアウトするか削除する。

#root

  ※ ファイル修正後 ftp デーモンの再起動不要

/etc/ftpusers に root エントリがある場合 Login不可

# ftp localhost
Connected to localhost (127.0.0.1).
220 ProFTPD 1.2.10 Server (Ftp Default Server) [127.0.0.1]
Name (localhost:root): root
331 Password required for root.
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

/etc/ftpusers に root エントリがある場合 Login 可能

# ftp localhost
Connected to localhost (127.0.0.1).
220 ProFTPD 1.2.10 Server (Ftp Default Server) [127.0.0.1]
Name (localhost:root): root
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

原因:/etc/shells の設定内容


/etc/shells にログインシェル名が記述されていない場合 ftp ログインできない。
(telnetではログインできる)

shells の man によると以下のような説明がされている。

shells の man

HELLS(5)                           Linux Programmer’s Manual          SHELLS(5)

名前
   shells - ログインシェルとして有効なファイルのパス名

説明
   /etc/shells はログインシェルとして有効なファイルのフルパスが書かれたテキストファイルである
   。 chsh(1) はこのファイルを参照する。他のプログラムもこのファイルを参照できる。

   注意して欲しいのだが、プログラムによっては、ユーザーが通常のユーザーかどうかを判断する際に
   、 このファイルの内容を参考にすることがある。例えば ftp デーモンは、ログインシェルがこのフ
   ァイルに書かれていないユーザーからのアクセスを許さないのが以前から一般的である。

例
   /etc/shells には以下のようなパスが含まれているだろう。

          /bin/sh
          /bin/csh

ファイル
       /etc/shells

関連項目
       chsh(1), getusershell(3)

動作を確認してみる

現在のログインシェルを確認する

# echo $SHELL
/bin/bash
#

この /bin/bash が /etc/shells にあるので ftp ログインできる

/etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/ash
/bin/bsh
/bin/ksh
/usr/bin/ksh
/usr/bin/pdksh
/bin/tcsh
/bin/csh
/bin/zsh
# ftp localhost
Connected to localhost (127.0.0.1).
220 ProFTPD 1.2.10 Server (Ftp Default Server) [127.0.0.1]
Name (localhost:root): root
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

/bin/bash をコメントアウトするとログインできない

/etc/shells
/bin/sh
#/bin/bash
/sbin/nologin
/bin/ash
/bin/bsh
/bin/ksh
/usr/bin/ksh
/usr/bin/pdksh
/bin/tcsh
/bin/csh
/bin/zsh

  ftp ログインできない

# ftp localhost
Connected to localhost (127.0.0.1).
220 ProFTPD 1.2.10 Server (Ftp Default Server) [127.0.0.1]
Name (localhost:root): root
331 Password required for root.
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> by
221
#

    * root 以外のユーザでも ログイン できなかった


ちなみに telnet ログインはできる

# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: root
Password:
Last login: Wed Jul 25 15:17:00 from localhost
#
      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google