VSFTPD、553ファイルを作成できませんでした。-許可?


31

Amazon Linux AMIを使用してAmazon EC2でVSFTPDをセットアップしました。ユーザーを作成し、ftp経由で正常に接続できるようになりました。ただし、何かをアップロードしようとすると、「553できませんでした」というエラーメッセージが表示されます。

これはパーミッションに関係していると思いますが、修正できるほど十分には知りません。それで、基本的に、ファイルをアップロードできるようにするにはどうすればいいですか?


selinuxの設定を確認してください。configureブールallow_ftpd_full_access ONに

回答:


18

これが発生する可能性のある理由は2つあります。アップロードしようとしているディレクトリにつながるディレクトリに対する書き込み権限と実行権限vsftpdがないか、アップロードを許可しないように構成されています。

前者の場合、必要に応じてchmodおよびchownを使用して、ユーザーがすべての中間ディレクトリでこれらの権限を持っていることを確認します。書き込みビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを作成、名前変更、削除し、ディレクトリの属性を変更できます。読み取りビットを使用すると、影響を受けるユーザーはディレクトリ内のファイルを一覧表示できます。パス内の中間ディレクトリもこれに影響するため、アップロードする最終的な宛先まで適切にアクセス許可を設定する必要があります。

後者の場合、を見てくださいvsftpd.confwrite_enable書き込みを許可するにはtrueである必要があります(デフォルトではfalseです)。この構成ファイルに関するドキュメントは、にありますman 5 vsftpd.conf


10
これらのどちらも問題ではないようです。すべてを777(安全でない)および設定write_enable = YESにchmodしようとしましたが、この役に立たないエラーメッセージが表示されます。
セリン

@Cerinは修正できましたか?はいの場合、詳細を共有できますか?
unknownerror

34

これを試してもらえますか

chown -R ftpusername /var/www/html

5
chmod 757 -R / var / www / html
エルナンエチェ

1
@HernánEcheチップをありがとう、私は何時間も狩りをしていましたが、これでようやく問題が解決しました。
Tr0yJ

状況について詳しく説明してください。これはサーバー上ですか、それともローカルですか?
エドゥアールロペス

1
@HernánEcheねえ、それも私にとってはうまくいきましたが、安全です。755では動作しませんでした
-viv

1
@HernánEcheこれを別の答えにしてください。あなたの提案は、他に何もしなかったところで私のために働いた。
ショールは私がモニカをサポートする

11

コマンドftp put /path/to/local_fileはで機能しませんvsftpd。以下を試してください:

ftp put /path/to/local_file remote_file_name 

には任意の名前を選択できremote_file_nameますが、指定する必要があります。


2
回答に詳細を追加することを検討してください(たとえば、ソリューションの有効性をサポートするドキュメントなど)。
HalosGhost 14年

これ/path/to/は、サーバー上に(および/または)FTPセッションを介して存在しない(および/またはアクセスできない)ために発生します。これが、明示的な宛先なしでftp put local_file 機能する理由です。(ヒント:local: … remote: …FTPクライアントの行を確認してください。)
スキッピールグラングロー

1
それは私のために働いた!:)
パウロ

3

FTPホームディレクトリ(ftp_home_dir)は、SeLinuxではほとんど無効になっています。ftpd制御ファイルのステータスを確認するには、次を発行しgetsebool -a、ftpdセクションを見つけます。ftp_home_dirがオフになっていることがあります。オンにするには、次のコマンドを使用します。setsebool -P ftp_home_dir=1

を使用して入力を確認しgetsebool -a、アップロードを再試行してください。

注:句読点は無視してください


2

私は同じ問題を抱えていましたが、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

他のコメントですでに説明したように。


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



0

別の可能性:ユーザー/グループのディスククォータを確認する

ext:

repquota -a

xfs:

xfs_quota -x -c 'report' /mount_point

0

次のパラメーターは、ftpdがどこにでも書き込むためのアクセスを許可します。

setsebool -P ftpd_full_acess=true 

ftpd_anon_write匿名アップロードを許可しない限り、使用しないでください。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.