SELinuxが有効になっているサーバではvsftpdのデータ転送が使用できない

CentOSなどでは標準ではSELinuxが有効になっています。
また標準のFTPサーバはvsftpdです。
ここでSELinuxが有効になっていると、vsftpdインストール直後では制御コマンドは使用できますが、データ転送は使用できません。

具体的にはログイン、ディレクトリ変更、ファイル転送のコマンド自体は送信することができますが、ファイル一覧情報の取得、データの転送はできません。
つまりホームディレクトリの情報取得、変更はできません。

ファイルアップロードなどで、putコマンドではエラーが出ずに、実体ファイルを送信しようとしたときに次のようなエラーが出るとき

553 Could not create file.

またファイルの一覧が取得できないにもかかわらず、『 / 』ディレクトリの一覧のみは取得できるときはSELinuxによる制限がかかっています。

このとき、SELinuxを無効にすることで解消されますが、それではそもそもSELinuxの機能は失われます。

SELinuxを有効にした状態での、対処法はSELinuxでFTPのディレクトリ制御を解除します。

/usr/sbin/setsebool -P ftp_home_dir 1

関連記事

スポンサーリンク

RegExp.lastMatch

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る