Controlar el acceso ftp con vsftpd

Controlar el acceso ftp con vsftpd

Tenía vsftpd configurado de tal manera que podía cargar archivos a un VPS que configuré. El único problema es que no pude crear directorios. Configuré vsftpd para no permitir usuarios anónimos, pero permitir que los usuarios virtuales se conecten con sus credenciales locales. En este punto, el mensaje de error cuando intenté crear una carpeta cambió de '550: Error al crear directorio' (estoy parafraseando) a '550: Permiso denegado'. root posee la carpeta /var/www y el usuario con el que me estaba autenticando tenía permisos de lectura y ejecución, pero no de escritura, por lo que tiene sentido que no pueda crear carpetas o archivos.

En este punto, intenté usar chown y chmod para cambiar recursivamente la propiedad del grupo a un grupo en el que estaba mi usuario y darle permiso de escritura. Esto pareció funcionar al principio: en la sesión SSH, pude acceder a /var/www y crear un nuevo directorio. Sin embargo, cuando intenté iniciar sesión con mi cliente ftp, se me negó el acceso.

Lo que es aún más extraño es que cuando revisé /var/log/vsftpd.log, veo las siguientes líneas:

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"

...aunque el inicio de sesión no parece funcionar. ¿Qué está sucediendo?

EDITAR(más información): SO: Ubuntu 14.04 Arquitectura: Servidor privado virtual (?)

Cuando configuré el servidor, no permití iniciar sesión como root (como lo recomiendan varias fuentes) y configuré un usuario diferente, 'gradinafrica', que agregué al grupo sudo. Estoy intentando utilizar esta cuenta para ftp. No he trabajado con sftp en absoluto.

Aquí está el contenido de vsftpd.conf (comentarios omitidos):

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

Respuesta1

Si necesita obtener permiso de escritura para su cuenta de usuario en /var/www/, un usuario en particular desea ser miembro del grupo apache o www-data según su sistema operativo.

write_enable=YES

Utilice esto solo si ha agregado un usuario con el directorio raíz web como directorio de inicio

allow_writeable_chroot=YES

información relacionada