Los usuarios de FTP no pueden ver ningún archivo cuando se hace chroot

Los usuarios de FTP no pueden ver ningún archivo cuando se hace chroot

En Debian Wheezy de 64 bits, creo un nuevo usuario para que un cliente coloque archivos en un directorio. Una vez creado el usuario, elimino su inicio de sesión interactivo reemplazándolo /bin/bashcon /bin/falsein /etc/passwd. Luego lo agrego a /etc/ftpchroot, para que su sesión se dirija a su directorio de inicio.

Sin embargo, tan pronto como agrego al usuario /etc/ftpchroot, cuando el usuario inicia sesión, no puede ver ningún archivo. El usuario tiene un chroot, no puede subir. Puede cargar archivos, que se almacenan en el directorio correcto, y con permisos 640 y propiedad de ese usuario: ese grupo de usuarios.

Mis pensamientos hasta ahora:

  • /etc/ftpchrootestá claramente haciendo algo y haciendo lo que debe hacer.
  • Cualquier usuario creado en esa máquina tiene este problema (lo intenté dos veces con otros usuarios nuevos)
  • No depende del directorio. Alterar su directorio de inicio y hacer chroot allí muestra el mismo problema.

Es extraño para mí ya que he hecho esto varias veces antes y nunca me había encontrado con esto. Lamentablemente, buscar una respuesta en Google es difícil debido a la problemática descripción del problema.

Edición 1: Algo que estoy viendo ahora. Al iniciar sesión en ftpchroot, no se muestra ningún mensaje cuando el inicio de sesión se completa correctamente. Sin embargo, /etc/motdse muestra el inicio de sesión sin ftpchroot después de completar la autenticación.

Edición 2: he solucionado el problema instalando inetutils-ftpd. Trajo autenticación PAM y, después de configurarla, inicia sesión con el mismo usuario sin el problema mencionado y puede cargar y ver sus archivos sin problemas.

Respuesta1

Cuando usas chroot, cualquier binario que quieras usar dentro del chroot debe existir dentro de ese chroot. En el caso de ftpchroot, esto generalmente significa que ftpd necesita tener lscapacidades dentro de su propio binario en lugar de depender del /bin/lssistema; de lo contrario, cada usuario tendría que tener las suyas propias $HOME/bin/ls.

Entonces, la solución es usar un demonio ftp que tenga lsincorporado (o volver a compilarlo con --ls-included, o cualquiera que sea la opción apropiada para este demonio ftp en particular).

información relacionada