Монтирование файловой системы с помощью SSHFS без доступа по SSH

В компании, в которой я сейчас работаю, на данный момент проходит тестирование новое рабочее окружение. Суть в том, что разработчики уходят с локальных “серверов”, а весь процесс разработки выносится на отдельные, специально предназначенные для этого сервера. ?? вот, появилась проблема, которая требовала решения – необходимо было предоставить возможность разработчикам монтировать свои папки по SSHFS, но не предоставлять досту в Shell по SSH. Конечно, каждая проблема имеет свое решение, этот раз не стал исключением.

Было найдено пару решений:

1) RSSH – shell для предоставления возможности выполнять команды scp и монтировать папки. Не тестировал, но предполагаю, что работать должно исправно.

2) Второй и, как по мне, самый элегантный вариант. Необходимо поменять пользователю командную оболочку (shell) на sftp-server. Найти этот файл можно у себя на сервере выполнив команду sudo find / -name "sftp-server" ( у меня на CentOS это /usr/libexec/openssh/sftp-server, а на Debian /usr/lib/sftp-server). Подменить пользователю shell можно двумя способами:

  • sudo usermod -s /path/to/sftp-server username
  • открыть файл /etc/passwd и заменить shell ручками

Затем необходимо оповестить OC о том, что sftp-server – валидная shell оболочка. Сделать этом можно добавив строчку c содержанием “/path/to/sftp-server” в файл /etc/shells (echo ‘/path/to/sftp-server’ >> /etc/shells)

При следующей попытке войти на сервер пользователь получит отказ, но папка успешно примонтируется.

 

Leave a Reply

Your email address will not be published. Required fields are marked *