Если пользователь входит в систему, он запускается в / из chroot (на реальной машине это / var / jail). Я бы хотел, чтобы он начал в своем домашнем режиссере. Кроме того, он, похоже, не загружает ни один из своих профильных файлов (.bash.rc и т. Д.). Я последовал за этот учебник по созданию среды chroot. Вот как выглядит мой / etc / passwd:
test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash
вот как выглядит мой файл / var / jail / etc / passwd:
test:x:1004:1008:,,,:/home/test:/bin/bash
Я также узнал, что если я удалю
Match User test
ChrootDirectory /var/jail
AllowTCPForwarding no
X11Forwarding no
из моего / etc / ssh / sshd_config, пользователь запускается в своей правильной домашней папке и с загруженными настройками bash. Однако он сможет покинуть chroot-окружение, если я удалю эту часть. это Вопрос, который я задал ранее, в некоторой степени связан с этим, так как я думаю, что неправильный вид командной строки вызван незагруженными файлами профиля. Итак, есть идеи, как это исправить?
Ваша конфигурация верна, за исключением небольшой детали: домашнего каталога в /etc/passwd
не должен содержать часть chroot-пути. Измените его на:
test:x:1004:1008:,,,:/home/test:/bin/bash
начать сначала sshd
и попробуй еще раз.
Из man sshd_config
:
ChrootDirectory
Задает путь к каталогу, в который после аутентификации будет использоваться chroot (2). Все компоненты имени пути должны быть корневыми каталогами, которые не доступны для записи другим пользователям или группам. После chroot sshd (8) меняет рабочий каталог на домашний каталог пользователя.
То есть сначала sshd
выполняет chroot
(в нашем случае chroot /var/jail
), а потом sshd
изменяет каталог на домашний адрес пользователя (в нашем случае cd /home/test
- в chrooted окружении cd /var/jail/home/test
не сработает).
Если вы используете Debian / Ubuntu (поскольку указанное вами руководство предназначено для Debian), вы можете создать файл с именем /var/jail/etc/debian_chroot
с содержимым "chroot" это будет отображаться в приглашении пользователя в круглых скобках следующим образом: (chroot)test@servername:~$
.
(Я продублировал вашу конфигурацию на моем Ubuntu 12.04, и она заработала после удаления /var/jail
из записи пользовательского теста в /etc/passwd
.)