Shammer's Philosophy

My private adversaria

SELinuxでFTP550/553

FTP Server を動作させようと、いろいろなサイトを参考に設定して、実際にftpでログインできるようになったものの、cdやputなど、ファイルをやり取りするために必要なコマンドが一切実行できない。直面するのは、ftp 550 とか、ftp 553 とか。ディレクトリやファイルに777でパーミッションを与えても全然動作が変わらず。あれこれ悩んでSELinuxが原因ではないかと思い、

cat /etc/selinux/config

で、SELinuxの設定を確認すると、SELINUX=enforcingになっていた。これを、SELINUX=disabledにしてOS再起動後、ftpを試したら問題は解消。権限をもとに戻して万事解決。SELINUXはかなりめんどくさそうだ。


自分の環境(Oracle Enterprise Linux)では、FTPはデフォルトでvsftpdがインストールされ、それを使用している。実際の定義ファイルは、

/etc/vsftpd/vsftpd.conf

になる。主な変更箇所は、

  • ascii_upload_enable=YES
  • ascii_download_enable=YES
  • chroot_local_user=YES
  • chroot_list_enable=YES
  • chroot_list_file=/etc/vsftpd/chroot_list
  • pam_service_name=vsftpd
  • userlist_enable=YES
  • tcp_wrappers=YES

だったか・・・(正直、忘れてしまっている部分も)。そして、chroot_listは新規に作成。
この編集後、

#service vsftpd restart

すれば、設定が反映される。