oooooooops! cannot change directory…(SELinux)
oooooooops!というわけで、サーバにFTP接続しようとしたらディレクトリ遷移できなくて接続切られてしまう件。
環境はは以下。
- CentOS 5.2
- vsFTPd。
Windowsのコマンドプロンプトより
C:\Documents and Settings\hoge>ftp hoge_host
Connected to hoge_host.
220 (vsFTPd 2.0.5)
User (hoge_host:(none)): hoge
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/hoge
500 OOPS: child died
Connection closed by remote host.
vsFTPは初めてだったし、configも何もしてなかったから、それかなー、と思ってたら違う。
これは、SELinuxのセキュリティポリシーによるもの。SELinuxもはじめて。
# man ftpd_selinux
SELinux ftp daemon policy is customizable based on least access required.
So by default SElinux does not allow users to login and read their home
directories.
If you are setting up this machine as a ftpd server and wish to allow
users to access their home directorories, you need to set the ftp_home_dir
boolean.
setsebool -P ftp_home_dir 1
SElinuxはデフォルトでユーザのFTP接続を許可しておらず、ユーザのホームディレクトリを読ませない。
言われるがままに、setseboolコマンドを叩く。
# setsebool -P ftp_home_dir 1
Windowsコマンドプロンプト
C:\Documents and Settings\hoge>ftp hoge_host
Connected to hoge_host.
220 (vsFTPd 2.0.5)
User (hoge_host:(none)): hoge
331 Please specify the password.
Password:
230 Login successful.
ftp>
できた。
「OOPS: cannot change directory」でWeb検索すると山ほど出てくるが備忘録としてエントリする。