web-dev-qa-db-ja.com

vsftpdがディレクトリの内容を一覧表示しない

vsftpdを使用してFTPサーバーをセットアップし、匿名のアップロードとダウンロードを有効にしました。私が抱えている問題は、ディレクトリをアップロードすると正常にアップロードされることです(サーバーで確認できます)が、次にそのディレクトリを確認するとき、FTPクライアントは空のディレクトリを表示します。

ログインしているエラーはありません/var/log/vsftpd.logpubフォルダー(匿名ftpユーザーのホームフォルダー)にも書き込み権限があります。さまざまな構成オプションをテストしましたが、どれも役に立ちませんでした!

私が設定した最新の設定オプションは以下のとおりです:

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirlist_enable=YES

テストのためにファイアウォールを一度もオフにしましたが、何も変わりませんでした!

4
saeedn

2つの提案:

  1. FTPを実行するユーザーIDには、vsftpdが現在の作業ディレクトリとして使用する「ルート」ディレクトリに対する「書き込み」権限がありますか? vsftpdは書き込み可能な作業ディレクトリを望んでいません。

  2. vsftpd.confファイルにはhide_fileディレクティブ。そのディレクティブで指定された正規表現によっては、匿名ユーザーがファイルを表示できない場合があります。

私は過去にvsftpdでこの問題を抱えていましたが、原因となったvsftpd.conf設定があることを思い出します。そのため、その構成ファイルをよく読んで、すべてのパラメーターとその値を理解してください。

5
Bruce Ediger

指摘してくれたuser81029に感謝

Sudo setsebool -P allow_ftpd_full_access 1

sELinuxのmount --bindフォルダーを/ var/ftp /に入れた後の空のftpディレクトリーの問題を解決します

3
oleg.blinnikov

私はVSFTPDをアクティブモードでのみ実行するように強制しましたが、それは私にとってはうまくいったようです。そのためには、設定ファイルに次の行を追加します。

pasv_enable=NO

しかし、最終的にはパッシブモードを有効にすることになったため、一部のアプリケーションでは要件であるように見えました。 VSFTPDはデフォルトではうまく機能しないようですので、明示的に設定を指定するのが最善です:

pasv_enable=YES

ファイアウォールを実行している場合は、正しいiptables設定を取得することも重要です。これは私の/etc/sysconfig/iptablesファイル:

# FTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1024:65535 -j ACCEPT
2
Boris Epstein

構成が正しく、ファイアウォールの問題ではない場合、SELinuxである可能性があります。私の場合、問題はあり、答えは次のとおりです。

setsebool -P allow_ftpd_full_access 1

man page から:

FTPサーバーがローカルユーザーにログインして、DACによって管理されるシステム上のすべてのファイルを読み書きできるようにする場合は、allow_ftpd_full_accessブール値をオンにする必要があります。

2
Oliver Dungey

hide_file=NOの追加を検討しましたか?

1
fullaware

sELinuxが有効になっている場合、setenforce 0コマンド?一時的に許可モードに入ることに注意してください。

0
Mike