На самом деле я не думаю, что вы спрашиваете, возможно.
Из руководства sshd_config:
ChrootDirectory Specifies the pathname of a directory to chroot(2) to after authentication. At session startup sshd(8) checks that all components of the pathname are root-owned directories which are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.
Таким образом, для работы chroot каталог должен принадлежать пользователю root. Вот почему это не работает, когда вы меняете владельца / home / sftp_user.
С другой стороны, когда владелец прав, chroot работает, но вы пытаетесь получить доступ к пути (вашему домашнему каталогу), который находится за пределами chroot. Если вы хотите, чтобы это работало, вам нужно создать домашнюю папку внутри chroot. Так что если вы получите chroot для / home / sftp_user, вам нужно будет создать / home / sftp_user / home / sftp_user.
При подключении sshd не может определить, хотите ли вы выполнить команду «ssh» или «sftp». Так что вам нужно будет дифференцироваться, используя другой метод. Может быть, конкретная учетная запись sftp или что-то.