Linux で FTP できないときの備忘

VMwareLinux をインストールしているのだけれど、FTP接続できなくて困っていた。
なんとかなったので、備忘を残す。

環境

VMware Server
CentOS 5.2
vsftpd

問題点

vsftpd は起動していて、ファイアウォールもなく、SSHは使えている状況で、ログインできない。
そのときのログは、こんな感じ(FFFTPのログ)。

ホスト 192.168.0.2 (21) に接続しています.
接続しました.
220 (vsFTPd 2.0.5)
>USER XXX
331 Please specify the password.
>PASS [xxxxxx]
500 OOPS: cannot change directory:/home/XXX
>USER XXX
ログインできません.

解決策

次のコマンドを一発。

# setsebool -P ftp_home_dir 1


設定が変更されたか確認するコマンドはこちら。

# getsebool ftp_home_dir


ついでに設定を一覧みたいに表示させて確認するコマンドはこちら。

# getsebool -a

理由

SELinuxセキュリティポリシーによるものとのこと。
http://www.ivoryworks.com/cgi-bin/weblog/mt-search.cgi?IncludeBlogs=2&tag=vsFTP&limit=20


このコマンドで、どうして動作するようになるのかまでは調べなかった。
SELinux もちゃんと勉強しないとダメそうだなぁ
社会人になってからのほうが、よく勉強してるよ(^_^;


いろいろググってみるも、X Server 上での対応策しか記載されてなくて迷う迷う。
みんなそんなに GUI が好きなのか…
あいにく、そんな重いツールは入れてないぞ(^_^;


とりあえず、こんなところを読んでみた。
第4回 ポリシーを編集せずに問題に対処する(4ページ目) | 日経 xTECH(クロステック)


へ〜。
SELinux が原因のトラブルって、多いのね。
気をつけよ。


〜2009.5.20 追記〜
同僚が見よう見真似で同じような環境を作ってた。
で、やっぱり FTP が上記と同じ SELinux の設定不備で使えなかった。
で X Server も入れてたんだけど、それだとちゃんと SELinux が遮断したって出るのね。
たまには X を使わないとダメかも…