Как включить bash для пользователей ChrootDirectory (ssh_config)?
Я добавил в конец файла "/etc/ssh/sshd_config"
Match Group ftpusers
ChrootDirectory /home/ftpusers/
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Что я пытаюсь сделать? Я ограничил пользователей в этой группе доступом только к этому каталогу, и это работает, когда пользователи используют sftp, но это не работает, когда они используют ssh-соединение.
Пока они пытаются подключиться, они получают эту ошибку:
/bin/bash: No such file or directory
Вероятно, это потому, что я добавил ChrootDirectory в конфигурацию ssh для этой группы.
Есть ли другой способ разрешить им использовать bash и сохранить ChrootDirectory в конфигурации ssh?
Я попытался смонтировать папку --bind /bin в /home/usersftp и затем изменить путь bash в /etc/passwd для пользователей в этой группе, но ошибка все еще происходит.
ОС: Ubuntu сервер 16.04
Спасибо
2 ответа
Вы должны прочитать о том, что такое chroot. Команда chroot
меняет корневой каталог /
в другой каталог. Так что если вы установите chroot для пользователя /home/usersftp
и вы хотите, чтобы они могли открывать Bash, тогда Bash должен быть в /home/usersftp/bin/bash
,
Что касается вашего вопроса:
Есть ли другой способ разрешить им использовать bash и сохранить ChrootDirectory в конфигурации ssh?
Конечно, но вам нужно создать правильную среду chroot. Объяснение этого здесь немного выходит за рамки, и в Интернете есть бесчисленное множество примеров, и я уверен, что есть некоторые из них на сервере.
Но в качестве отправной точки вы можете создать chroot с пакетом debootstrap
,
Привязка может фактически работать, но вам нужно использовать новый путь для оболочки входа в систему, который может быть /bin/bash
когда вы связаны /bin/
в /home/usersftp/bin/
,
С другой стороны, вы можете использовать ограничительную оболочку вместо chroot, например, rssh, если вы хотите использовать учетную запись только для передачи файлов.