500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

Recientemente, tuve que instalar en un servidor Linux Ubuntu 10.04, el software para crear una nube privada basado en un software opensource llamado «ownCloud». Teóricamente un trabajo fácil, ya que simplemente se trataría de instalar los paquetes con el comando apt-get, configurar la aplicación, crear la base de datos correspondiente, y poco mas.

Sin embargo estas tareas aparentemente sencillas, suelen esconder mucho trabajo oculto. En este caso los paquetes de ownCloud no están disponibles para la versión 10.04 de Ubuntu. De tal manera, que o bien se podían instalar manualmente con mucho esfuerzo, o ya puestos, podíamos actualizar Ubuntu a la ultima versión disponible en el momento, la 12.04. Optamos por esta última opción, y tras muchos problemas, después de sufrir la pesadilla de reconfigurar el servidor de correo dovecot+postfix que dejó de funcionar durante la migración, también nos dimos cuenta de que el servicio vsftd, que hasta ahora funcionaba correctamente, dejó de funcionar y negaba el login a los usuarios con el siguiente mensaje de error:

El error es debido a que en las ultimas actualizaciones de vsftpd, se han añadido mas medidas de seguridad, y han conseguido algo un poco paradójico  si un usuario de ftp tiene permisos de escritura sobre el directorio en el cual está enjaulado, te deniega el login por motivos de seguridad. Con lo cual, la solución es quitarle los permisos de escritura al usuario sobre el directorio al que le damos acceso por ftp y dárselos a un subdirectorio de ese directorio.

Para nuestro caso esa solución no era muy util, afortunadamente hay otra.

La version de vsftpd que viene con Ubuntu 12.04 es la 2.3.5. Hay que subirla a la version 3:

Y una vez que hemos actualizado nuestro vsftpd, añadimos al final del archivo de configuración:

Y por último reiniciamos el servicio:

Con esto, debería quedar solucionado el problema y nuestros usuarios de ftp pueden volver a tener acceso al directorio que tienen asignado.

guión
sustantivo: guión, escritura, letra, letra cursiva

10 comentarios en “500 OOPS: vsftpd: refusing to run with writable root inside chroot ()”

  1. La solucion para ubuntu server 12.04 es descargar el paquete vsftpd_3.0.2-1ubuntu1_amd64.deb o vsftpd_3.0.2-1ubuntu1_i386.deb, copiarlo al servidor, instalarlo con sudo dpkg -i vsftpd_3.0.2-1ubuntu1_amd64.deb, luego en el archivo de configuracion vsftpd.conf en /etc/vsftpd.conf hay que descomentar chroot_local_user=YES y agregar allow_writeable_chroot=YES, guardar y salir, luego reiniciar el servicio con sudo service vsftpd restart.
    El paquete se baja de http://us.archive.ubuntu.com/ubuntu/pool/main/v/vsftpd/
    Saludos!

    • Hola Javier, hoy a 07-JUL-2016, tu solución me ayudo a salir adelante con la instalación de VSFTPD sobre Ubuntu Server 12.04.5

      Gracias!
      Un saludo

      Que buen blog ROQUE, gracias!!

  2. Bravo!!! me ha ayudado mucho, ni te imaginas lo que llevaba para solucionar eso. Pero ahora tengo una duda, y es, como puedo evitar que los usuarios salgan de un directorio determinado diferente del personal. Por ejemplo, /srv/ftp/dir? Saludos y muchas gracias 😉

  3. thanks! fue un dolor de cabeza estar cambiando y cambiando los directorios sus permisos y grupos resultando ser esa linea la solución. saludos

Los comentarios están cerrados.