web-dev-qa-db-ja.com

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

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

私はこれが許可に関係していると思いますが、それを修正できるほど私はそれについて十分に知りません。それで、基本的に、ファイルをアップロードできるようにするために何をしなければなりませんか?

33
user1995

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

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

後者の場合は、vsftpd.confを確認してください。 write_enableは書き込みを許可するためにtrueでなければなりません(デフォルトではfalseです)。この構成ファイルに関する適切なドキュメントはman 5 vsftpd.confにあります。

19
Chris Down

これを試して頂けますか

chown -R ftpusername /var/www/html
38

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

ftp put /path/to/local_file remote_file_name 

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

12
Victor

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

getsebool -aを使用して入力を確認し、もう一度アップロードしてください。

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

3
Bright Sunshine

同じ問題があり、vsftp = /var/ftp/pubが使用するように構成したフォルダーに書き込みを許可するようにSELinuxを変更することを修正しました。

これらのリンクは役に立ちます:

SELinuxを使いたくない場合は変更しないでください。デフォルトとして表示されます/etc/selinux/config

SELINUX=enforcing

次に、ルートとして、またはSudoを使用してコマンドを実行します。

Sudo setsebool -P ftpd_anon_write 1
Sudo setsebool -P ftpd_full_access 1

他のコメントですでに説明したとおり。

2

これを試して

chmod 757 -R /var/www/html
2
Hernán Eche

この設定についてvsftpd.confを確認してください:

guest_enable=YES # set it to NO then restart the vsftpd service.

YESに設定すると、553 Could not create fileも発生します。

差出人: http://www.vsftpd.beasts.org/vsftpd_conf.html

guest_enable有効にすると、すべての非匿名ログインが「ゲスト」ログインとして分類されます。ゲストログインは、guest_username設定で指定されたユーザーに再マップされます。

デフォルト:いいえ

1
Henry Parra

ファイル名にサポートされていない文字が含まれている可能性があります

0
Omkar Dusane

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

setsebool -P ftpd_full_acess=true 

使ってはいけません ftpd_anon_write匿名アップロードを許可したい場合を除きます。

0
Neil

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

ext:

repquota -a

xfs:

xfs_quota -x -c 'report' /mount_point
0
mveroone

私の場合、ftpユーザーは、それが置かれていたディレクトリに権限がありませんでした

ターゲットディレクトリにcdするのを忘れたので、didに適切なアクセス許可を持っています。

0
kintsukuroi