私が設定したVPSにファイルをアップロードできるようにvsftpdを設定しました。唯一の問題は、ディレクトリを作成できないことです。匿名ユーザーは許可しませんが、仮想ユーザーはローカル資格情報を使用して接続できるようにvsftpdを設定しました。この時点でフォルダを作成しようとすると、エラーメッセージが「550:ディレクトリの作成に失敗しました」(私の解釈)から「550:権限が拒否されました」に変わります。ルートは/var/wwwフォルダを所有しており、私が認証したユーザーは読み取りおよび実行権限はありますが書き込み権限はないため、フォルダやファイルを作成できないことがわかります。
この時点で、私はchownとchmodを使用して、グループの所有権を自分の属するグループに再帰的に変更し、自分のユーザーに書き込み権限を付与しようとしました。最初はこれがうまくいったようです。 SSHセッションで/ var / wwwに移動して新しいディレクトリを作成できました。ただし、ftpクライアントを使用してログインしようとすると、アクセスは拒否されます。
見知らぬ人でも/var/log/vsftpd.logをチェックすると、次の行が表示されます。
Mon Jan 5 00:03:25 2015 [pid 801] CONNECT: Client "73.53.82.111"
Mon Jan 5 00:03:25 2015 [pid 800] [gradinafrica] OK LOGIN: Client "73.53.82.111"
...ログインが機能していないようです。どうなりますか?
編集する(追加情報):OS:Ubuntu 14.04アーキテクチャ:仮想プライベートサーバー(?)
サーバーを設定するときにrootとしてログインすることを許可していない(複数のソースで推奨されている)、他のユーザー「gradinafrica」を設定してsudoグループに追加しました。このアカウントをFTPに使用しようとしています。私はsftpをまったく使用しませんでした。
これはvsftpd.confの内容です(コメントを省略):
listen=YES
anonymous_enable=NO
local_enable=YES
virtual_use_local_privs=YES
anon_upload_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
local_root=/var/www/
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
答え1
/var/www/のユーザーアカウントへの書き込み権限が必要な場合、特定のユーザーはオペレーティングシステムに応じてapacheまたはwww-dataグループのメンバーになることを望みます。
write_enable=YES
Webルートをホームディレクトリとしてユーザーを追加した場合にのみ、このオプションを使用してください。
allow_writeable_chroot=YES