回答:
これが発生する可能性のある理由は2つあります。アップロードしようとしているディレクトリにつながるディレクトリに対する書き込み権限と実行権限vsftpd
がないか、アップロードを許可しないように構成されています。
前者の場合、必要に応じてchmod
およびchown
を使用して、ユーザーがすべての中間ディレクトリでこれらの権限を持っていることを確認します。書き込みビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを作成、名前変更、削除し、ディレクトリの属性を変更できます。読み取りビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを一覧表示できます。パス内の中間ディレクトリもこれに影響するため、アップロードする最終的な宛先まで適切にアクセス許可を設定する必要があります。
後者の場合、を見てくださいvsftpd.conf
。write_enable
書き込みを許可するにはtrueである必要があります(デフォルトではfalseです)。この構成ファイルに関するドキュメントは、にありますman 5 vsftpd.conf
。
これを試してもらえますか
chown -R ftpusername /var/www/html
コマンドftp put /path/to/local_file
はで機能しませんvsftpd
。以下を試してください:
ftp put /path/to/local_file remote_file_name
には任意の名前を選択できremote_file_name
ますが、指定する必要があります。
/path/to/
は、サーバー上に(および/または)FTPセッションを介して存在しない(および/またはアクセスできない)ために発生します。これが、明示的な宛先なしでftp put local_file
機能する理由です。(ヒント:local: … remote: …
FTPクライアントの行を確認してください。)
私は同じ問題を抱えていましたが、SELinuxの変更を修正して、使用するように構成したフォルダーに書き込みを許可しましたvsftp = /var/ftp/pub
。
次のリンクが役立ちます。
SELinuxをさらに使いたくない場合は、変更しないでください。デフォルトとして表示されます。 /etc/selinux/config
SELINUX=enforcing
次に、rootとして、または次のコマンドを使用してコマンドを実行しますsudo
。
sudo setsebool -P ftpd_anon_write 1
sudo setsebool -P ftpd_full_access 1
他のコメントですでに説明したように。
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
Fedora23の場合、次のコマンドを実行します。
setsebool -P ftpd_anon_write 1
setsebool -P ftpd_full_access 1
それは私のために働いた。