
Я настроил vsftpd так, что мог загружать файлы на настроенный мной VPS. Единственная проблема в том, что я не мог создавать каталоги. Я настроил vsftpd так, чтобы запретить анонимным пользователям, но разрешить виртуальным пользователям подключаться с их локальными учетными данными. В этот момент сообщение об ошибке при попытке создать папку изменилось с «550: Create directory failed» (я перефразирую) на «550: Permission denied». root владеет папкой /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"
...даже если вход не работает. Что происходит?
РЕДАКТИРОВАТЬ(подробнее): ОС: 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
Используйте это только в том случае, если вы добавили пользователя с корневым веб-каталогом в качестве домашнего каталога.
allow_writeable_chroot=YES