vsftpd y el error «500 OOPS: Vsftpd: Refusing to Run With Writable Root Inside Chroot»

Publicado por Diego Córdoba en

Hoy vamos a ver cómo corregir un «famoso» y recurrente error que produce el servidor de FTP vsftpd. Me ha pasado en Debian, y les comparto la solución que me fue útil.


A muchos les habrá pasado de recibir, en el server vsftp, el siguiente mensaje de error al tratar de iniciar login:

500 OOPS: Vsftpd: Refusing to Run With Writable Root Inside Chroot () Login failed.El mensaje hace referencia a que no puede iniciar el servicio cuando estamos haciendo chroot a nuestros usuarios locales… en palabras simples, cuando tratamos de enjaular a los usuarios en sus directorios /home para que no vean el resto del sistema de archivos.ftp vsftpd bug 500 error solved linux gnu debian wheezy

A mi me ha ocurrido esto en la versión 2.3.5-10~update.1 de vsftp server en un Debian Wheezy (7.5 precisamente) con kernel 3.2.0-4-amd64.

El error no se produce si deshabilitamos la característica de chroot, pero claro, los usuarios verían todo el filesystem, y eso no es bueno, no no 🙂ftp vsftpd bug 500 error solved linux gnu debian wheezy

El error fue documentado y corregido en la versión 3.0 en adelante de vsftpd… el problema lo tenemos quienes mantenemos servidores Debian Wheezy, un Debian old-estable, puesto que en los repositorios de Debian 7 vsftpd llega a su versión 2.3.5 🙁

Para permitir el chroot de usuarios locales, y además lograr que puedan loguarse, es necesario entonces parcharlo, instalando una versión corregida.

Podemos descargar la versión corregida por la gente de The Frontier Group simplemente agregando su repositorio Debian a nuestro sistema:

echo "deb http://ftp.cyconet.org/debian wheezy-updates main non-free contrib" >> /etc/apt/sources.list.d/wheezy-updates.cyconet.list

Luego actualizamos la lista de paquetes:

aptitude update

E instalamos vsftpd desde el nuevo repositorio:

aptitude install -t wheezy-updates debian-cyconet-archive-keyring vsftpd

Por último, agregamos, ahora sí, la opción allow_writeable_chroot a nuestro archivo de configuración:

echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf

y reiniciamos, como es debido, el servicio, para cargar los cambios:

/etc/init.d/vsftpd restart

Y luego, nuestros usuarios podrán loguearse, y tendrán chroot… y todos felices 🙂

Espero les sea de utilidad!

Cualquier inconveniente, consulta o sugerencia saben que pueden comentar este artículo! Así los aportes de cada uno quedan disponibles para la comunidad!


¿Preguntas? ¿Comentarios?

Si tenés dudas, o querés dejarnos tus comentarios y consultas, sumate al grupo de Telegram de la comunidad JuncoTIC!
¡Te esperamos!


Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador