Amazon LinuxAMIを使用してAmazonEC2にvsftpd
を設定しました。ユーザーを作成して次のことができますftp経由で正常に接続できるようになりました。ただし、何かをアップロードしようとすると、エラーメッセージが表示されます
553 Could not create file.
これは権限に関係していると思いますが、 「それを修正できるほど十分に知らない。基本的に、ファイルをアップロードするにはどうすればよいですか?
コメント
- selinuxの設定を確認してください。 booleanallow_ftpd_full_accessをONに構成する
- ファイルを書き込むための十分なスペースがなかったため、この問題が発生しました。
回答
これが発生する可能性のある理由は2つあります。アップロードしようとしているディレクトリにつながるディレクトリに対する書き込みおよび実行のアクセス許可がないか、vsftpd
はアップロードできないように構成されています。
前者の場合は、chmod
とchown
必要に応じて、ユーザーがすべての中間ディレクトリに対してこれらの権限を持っていることを確認してください。書き込みビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを作成、名前変更、または削除し、ディレクトリの属性を変更できます。一方、読み取りビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを一覧表示できます。パス内の中間ディレクトリもこれに影響を与えるには、アップロード先の最終的な宛先に至るまで、権限を適切に設定する必要があります。
後者の場合は、vsftpd.conf
を確認してください。 write_enable
は、書き込みを許可するためにtrueである必要があります(デフォルトではfalseです)。この構成ファイルに関する適切なドキュメントがman 5 vsftpd.conf
にあります。
コメント
- どちらも問題ではないようです。すべてを777(安全ではない)に変更し、write_enable = YESに設定してみましたが、それでも取得できます。この役に立たないエラーメッセージ。
- @Cerinは修正できましたか?はいの場合、詳細を共有できますか?
回答
これを試していただけませんか
chown -R ftpusername /var/www/html
コメント
- chmod 757 -R / var / www / html
- @Hern á nEcheヒントをありがとう、私は何時間も探していましたが、これでようやく問題が解決しました。
- 状況について詳しく教えていただけますか、これはサーバー上にありますかまたはローカルですか?
- @Hern á nEcheねえ、それは私にとってもうまくいきましたが、安全ですか。 ' 755では機能しませんでした
- @Hern á nEcheこれは別の答えにする必要があります。あなたの提案は、他に何もしなかったところで私のために働きました。
回答
コマンドftp put /path/to/local_file
はvsftpd
では機能しません。次のことを試してください。
ftp put /path/to/local_file remote_file_name
いずれかを選択できますremote_file_name
に付ける名前ですが、指定する必要があります。
コメント
- 必要な場合があります回答に詳細を追加することを検討してください(たとえば、ソリューションの有効性をサポートするドキュメント')。
- これは、
が存在しない'が存在しない(および/またはFTPセッションを介してアクセスできない')サーバー。これが、
ftp put local_file
が明示的な宛先なしで機能する理由です(ヒント:local: … remote: …
行を確認してくださいFTPクライアント。) - うまくいきました!:)
回答
FTPホームディレクトリ(ftp_home_dir)は、SeLinuxでオフになっている可能性があります。 ftpd
制御ファイルのステータスを確認するには、getsebool -a
を発行し、ftpdセクションを見つけます。 ftp_home_dirがオフになっていることに気付くかもしれません。オンにするには、次のコマンドを使用します:setsebool -P ftp_home_dir=1
getsebool -a
を使用して入力を確認し、アップロードを試してください再び。
注:句読点を無視してください
回答
同じ問題が発生し、SELinuxを次のように変更する問題を修正しましたvsftp = /var/ftp/pub
で使用するように構成したフォルダーへの書き込みを許可します。
次のリンクが役立ちます:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
SELinuxをさらに進めたくない場合は変更しないでください。これにより、デフォルトとして
SELINUX=enforcing
次に、rootとして、またはsudo
を使用してコマンドを実行します:
sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1
上記の他のコメントですでに説明したように。
回答
これを試してください
chmod 757 -R /var/www/html
回答
vsftpd.conf
でこの設定を確認してください:
guest_enable=YES # set it to NO then restart the vsftpd service.
YES
に設定されている場合は、553 Could not create file
も発生します。
From : http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable 有効にすると、すべての非匿名ログインが「ゲスト」ログインとして分類されます。ゲストログインは、で指定されたユーザーに再マップされます。 guest_username設定。
デフォルト:NO
回答
次のパラメーターは、ftpdにどこにでも書き込むためのアクセス権を与えます:
setsebool -P ftpd_full_acess=true
匿名アップロードを許可する場合を除いて、ftpd_anon_write
を使用しないでください。
A nswer
私の場合はファイルシステムに問題がありました。
スペースはありましたが、ファイルシステムのiノードが不足していますdf -i
# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01
回答
別の可能性:ディスククォータを確認してユーザー/グループ
ext:
repquota -a
xfs:
xfs_quota -x -c "report" /mount_point
回答
ファイル名にサポートされていない文字が含まれている可能性があります
回答
私の場合、 ftpユーザーはにあるディレクトリへのアクセス許可を持っていませんでした。
ターゲットディレクトリにcdするのを忘れたところです。 did に適切な権限があります。
回答
私の場合(CentOS7 + vsftpd)、コマンド" chmod 775 / home / u ser / ftpdir / "役に立たなかった。
コマンド" sestatus 、有効になっています。ftp関連のオプションを一覧表示します:" getsebool -a | grep ftp "
コマンド" setsebool ftpd_full_access on "で無効なオプションftpd_full_accessを有効にしました。次に、ファイルの書き込みを開始しました。
回答
Fedora23の場合は、次のコマンドを実行します。
setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1
うまくいきました。