vsftpd - raíz_local = / var / www / sites / $ USER no se interpreta?

11

Cuando intento conectarme al servidor FTP obtengo: "500 OOPS: no se puede cambiar el directorio: / home / $ USER / public_html"

  • cuando echo $ USER - obtengo el nombre de usuario apropiado
  • parece que $ USER no se interpreta dentro de mi /etc/vsftpd.conf
  • cuando elimino "raíz_local = / var / www / sites / $ USER", todo funciona sin problemas.

Estoy ejecutando vsftpd 2.2.2 y Ubuntu 10.04.1 LTS Release: 10.04 Nombre clave: lucid

Pawel
fuente

Respuestas:

21

Lo que necesita usar es una combinación de user_config_dir y local_root. En el archivo de configuración principal /etc/vsftpd/vsftp.conf tiene una entrada como:

chroot_local_user=YES
user_config_dir=/etc/vsftpd/users

Dentro de ese directorio (/ etc / vsftpd / users) tiene un archivo de configuración con el mismo nombre que el usuario ($ USER en su caso), y dentro de ese archivo tiene:

local_root=/var/www/sites/USER
dirlist_enable=YES
download_enable=YES
write_enable=YES

... donde USER es el nombre real (no literalmente USER o $ USER).


fuente
2
El paso importante aquí es el uso: user_sub_token=$USEResto hace que la configuración original del póster funcione porque la variable $ USER obtiene un valor utilizable. Ver mi comentario en la otra respuesta.
user3450548
5

Debes configurar user_sub_token:

user_sub_token=$USER
local_root=/var/www/sites/$USER
Michaël Witrant
fuente
2
Es divertido que esta sea la solución real real, lo que el póster original quería hacer era realmente aplicable. Puede usarlo también en el otro ejemplo propuesto, pero no necesita habilitarlo necesariamente user_config_dir. Puedes hacerlo o no, según tu gusto. El paso importante aquí es user_sub_token=$USER, porque este es el que llena la $USERvar con algo utilizable dentro de la conf. Consulte la user_sub_tokendescripción en la página de manual: "Esta opción también tiene efecto si local_root contiene user_sub_token".
user3450548