質問: vsftpd-ftpuserがサーバーにファイルをアップロードできない サーバーにファイルをアップロードするようにftpを構成したnetbeansでwebサイトを開発しています。サーバー上-ubuntu 14.04 lts-このタスク専用に「ftpuser」というユーザーを作成しました。ファイルのアップロードを処理するためにvsftpdをインストールしました。その構成は打撃です:listen=yes anonymous_enable=no local_enable=yes write_enable=yes file_open_mode=0644 local_umask=022 dirmessage_enable use_localtime=yes xferlog_enable=yes connect_from_port_20=yes allow_writeable_chroot=yes chroot_local_user=yes secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ftpuserの開始ディレクトリは/ var/wwwです。ftpuser:x:1005:1007:ftp user,,,:/var/www:/bin/bash netbeansがファイルをアップロードしようとするたびに、「エラー、ファイルが送信されませんでした:file.php」と表示され、wiresharkを使用したパケット検査で次のエラーが返されます。226 - transfer done (but failed to open directory) 553 - could not create file. put操作でftpを実行しても、エラー553が発生します。ftpユーザーは、ログインしてディレクトリを変更しても問題はありません。ディレクトリとそのすべてのサブディレクトリおよびファイルには、権限が755(777-local_umask)に設定されています。行方不明のものはありますか?以前は完全に機能していましたが、netbeansまたはvsftpdで何かを変更したことを思い出せません。[〜#〜]更新[〜#〜]ディレクトリ(およびサブディレクトリ/ファイル)の所有者は、次のように設定されます。drwxr-xr-x 6 marijn marijn 4096 sep 1 14:21 noc これをftpuser:ftpuserに変更しても、何も起こりません。
回答: あなたの詳細によると、あなたがアップロードしようとしているディレクトリに書き込む権限はユーザーにはないと言っています。 所有者/グループはmarijnです。ただし、ディレクトリに書き込むことができるのはユーザーだけであり、グループと他のユーザーは、ディレクトリの読み取りと入力しかできません。ユーザーはftpuserです。 したがって、ftpuserをmarijnグループに追加し、グループmarijnに/var/www/nocおよびサブディレクトリ:chmod -r g+w /var/www/nocまたは、ftpuserを書き込み先のディレクトリの所有者にする必要があります。