Как включить 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, если вы хотите использовать учетную запись только для передачи файлов.

Другие вопросы по тегам