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

Amazon LinuxAMIを使用してAmazonEC2にvsftpdを設定しました。ユーザーを作成して次のことができますftp経由で正常に接続できるようになりました。ただし、何かをアップロードしようとすると、エラーメッセージが表示されます

553 Could not create file. 

これは権限に関係していると思いますが、 「それを修正できるほど十分に知らない。基本的に、ファイルをアップロードするにはどうすればよいですか?

コメント

  • selinuxの設定を確認してください。 booleanallow_ftpd_full_accessをONに構成する
  • ファイルを書き込むための十分なスペースがなかったため、この問題が発生しました。

回答

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

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

後者の場合は、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_filevsftpdでは機能しません。次のことを試してください。

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で使用するように構成したフォルダーへの書き込みを許可します。

    次のリンクが役立ちます:

    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 

    うまくいきました。

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です