Enlace simbólico y filezilla sobre sftp

15

Soy bastante nuevo en Debian, y estoy tratando de configurar un servidor.

He creado un usuario que solo puede acceder a su carpeta /home/username(y su subdirectorio).

Ahora quiero usar ese usuario para el servidor web que configuré, y le he dado acceso, /var/wwwpero no puedo ver a /var/wwwtravés de sftp e hice un enlace simbólico como este:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

Ahora, con filezilla, puedo ver la carpeta www como esta:

Filezilla

Pero cuando trato de abrirlo, obtengo esto:

Abierto

¿Qué estoy haciendo mal?

Doc
fuente

Respuestas:

22

Es probable que el SFTP se esté procesando, de modo que el directorio / var / www no esté disponible para el usuario en la cárcel de chroot.

Mire /etc/ssh/sshd_configy examine las directivas sftp. ¿Ves algo como:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

La página del manual de sshd_config está aquí .

Básicamente, una vez que el usuario está en /home/usernameSFTP, ese directorio se convierte /y las referencias externas /home/usernameno están disponibles. De hecho, un enlace simbólico ln -s /var/www /home/username/wwwparecerá que está tratando de alcanzarlo /home/username/var/www(es decir, /home/usernameahora es /así, cualquier enlace al que haga referencia /var/wwwtambién debe ser un subdirectorio /home/usernameen el contexto del chroot).

Como solución, puede desactivar el chroot (pero esto tendrá otras implicaciones de seguridad, principalmente con los usuarios de SFTP que tienen control total sobre su sistema de archivos). Puede hacer un montaje en bucle de / var / www en / home / username / www (algo así como mount --bind /var/www /home/username/www(consulte su documentación mount) que debería funcionar como se esperaría en chroot). También puede manipular el archivo sshd_config para excluir a ese usuario en particular del chroot (aunque, nuevamente, con implicaciones de seguridad).

Primero probaría el montaje de unión.

cjc
fuente
2
+1 para la montura: ¡truco de unión!
Helge Klein
1
Si desea que sea persistente durante los reinicios, edite su /etc/fstabcon una línea como/home/username/www /var/www none bind 0 0
pzkpfw
0

Resolví desvincular el enlace simbólico que hice y con

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(incluso si he perdido todo estaba en / var / www, pero no me importa)

¡gracias a todos!

Doc
fuente
No has perdido nada. Simplemente desmonte y copie sus archivos antes de volver a montar.
Zoredache
uuuhhh gracias! No tenía nada más que 1 archivo con un enlace, nada importante, pero no pude resolverlo: D
Doc