Solución:
Desafortunadamente, no tengo suficiente reputación para comentar porque todo lo que quería hacer es enfatizar lo importante que es el comentario de Richard Fairhurst y cómo debería agregarse a la “respuesta oficial”. He visto personas aquí y en otros lugares que tienen problemas para configurar el directorio de inicio del usuario o tener el directorio de inicio del usuario como un “directorio predeterminado”. Eso es solo porque en un entorno chroot el directorio raíz ya no es /. Lo que significa que cualquier otra ruta debe ser relativa a la nueva ruta raíz. Ex:
si usa chroot en / home y desea que el directorio predeterminado sea / home / default, debe establecer el directorio de inicio del usuario en / default. No / home porque / home será el nuevo /.
Si realmente necesita mantener el directorio de inicio del usuario en / home / user pero desea tener un directorio predeterminado para las sesiones sftp, puede usar el parámetro -d para internal-sftp. Como en este ejemplo:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /mnt/sftp
ForceCommand internal-sftp -d /default
/ default es un directorio dentro de / mnt / sftp. Observe que la ruta aquí es nuevamente relativa a la nueva raíz.
Mira esto esta artículo que muestra cómo usar sshd ChrootDirectory
para forzar a todos los miembros de un grupo en particular a una raíz de directorio común. Es posible que pueda modificarlo para satisfacer sus necesidades.
Quizás haya una manera de lograr lo que desea, pero hasta donde yo sé, sftp se opera sobre ssh, por lo que no estoy tan seguro de cómo hacerlo con ssh para cada usuario.
Sin embargo, una forma de evitar lo que desea hacer es actualizar los datos del usuario para iniciar sesión en cierto directorio de la siguiente manera. Esto será w
$ sudo usermod -d [certain path that you want to direct] username