Назад | Перейти на главную страницу

rbash, чтобы ограничить пользователя его домашним каталогом, закрывает соединение sftp

Сервер: Red Hat Enterprise Linux Server версии 6.5 (Сантьяго)

Использование openssh-server для разрешения sftp-соединений.

Я пытаюсь ограничить пользователей их личным домашним каталогом. Итак, я изменил / etc / passwd, установив пользователя "john" для использования /bin/rbash вместо того /bin/bash

john:502:503::/home/john:/bin/rbash

Если я это сделаю, Джон не сможет подключиться через sftp: соединение закрывается, как только он входит в систему (сообщение sftp Connection closed). Если вместо этого я установлю bash в / bin / bash, его соединение будет работать нормально, но тогда Джон сможет перемещаться по файловой системе сервера с помощью компакт-диска.

Можете ли вы объяснить, что я делаю не так, чтобы ограничить подключение пользователей через sftp к их собственному каталогу?

rbash не позволит вам запускать команды с ведущими /, если это будет сделано, он просто выйдет.

Если вы не используете внутренний sftp-сервер, попытка выполнить /usr/libexec/sftp-server не удастся.

С помощью Subsystem sftp internal-sftp в sshd_config исправлю это.

Однако, используя rbash не остановит sftp от блуждания по вашей файловой системе, вы, вероятно, захотите вместо этого chroot пользователей.

вы можете использовать обычную оболочку без ссылки, для ограниченной оболочки в / etc / profile поместите это

 if [[ $USER == "pluto" ]]; then
      export PATH=$HOME/bin
      readonly PATH
      set -r
 fi

и

mkdir /home/pluto/bin as root
ln -s /bin/ls /home/pluto/bin/ls

Таким образом, sftp работает, а pluto может использовать только команду ls