Home » Как включить SFTP без доступа к shell на Ubuntu 24.04
Как включить SFTP без доступа к shell на Ubuntu 24.04

Как включить SFTP без доступа к shell на Ubuntu 24.04

В этой статье обсуждается, как настроить SFTP-доступ на Ubuntu 24.04 для пользователей без возможности входа в shell. Это важно, когда хочется дать кому-то возможность закидывать файлы на сервер, но не хочется переживать, что они смогут что-то напортачить через терминал. Актуально для владельцев сайтов, дизайнеров, автоматизации деплоев, бэкапов/логов и просто “делегирования рутины”. Всё просто, быстро, безопасно!

Как работает SFTP без shell?

  • SFTP — это безопасный протокол передачи файлов, работающий поверх SSH.
  • Обычно пользователи SFTP получают shell-доступ по умолчанию, но с помощью sshd можно разрешить только файловые операции, запретив запуск команд.
  • Обеспечивается удобный и безопасный способ “залить/выкачать” что-то на сервер через SCP/SFTP-клиенты.

Быстрая настройка: шаг за шагом

  1. Установить OpenSSH (скорее всего, у тебя уже есть):
    sudo apt update && sudo apt install openssh-server
  2. Создать пользователя без shell-доступа (например, sftpuser):
    sudo adduser --shell /usr/sbin/nologin --home /home/sftpuser sftpuser
    Задать пароль, остальное можно пропустить.
    NB: /usr/sbin/nologin — специальная программа, блокирующая shell-доступ.
  3. Создать папку для файлов:
    sudo mkdir -p /home/sftpuser/files
    sudo chown root:root /home/sftpuser
    sudo chmod 755 /home/sftpuser
    sudo chown sftpuser:sftpuser /home/sftpuser/files
  4. Настроить /etc/ssh/sshd_config:

    Subsystem sftp internal-sftp

    Match User sftpuser
      ChrootDirectory /home/sftpuser
      ForceCommand internal-sftp
      AllowTcpForwarding no
      X11Forwarding no

    • Match User sftpuser — ограничивает правила для конкретного пользователя.
    • ChrootDirectory /home/sftpuser — “зажимает” пользователя в домашней папке, выше не вылезет.
    • ForceCommand internal-sftp — запуск только встроенного sftp, никаких башей.
  5. Перезапустить sshd:
    sudo systemctl restart sshd

Сравнение режимов SFTP-доступа

Режим Shell-доступ Изоляция Безопасность Использование
Обычный пользователь Есть Нет Средняя Админы, power-users
SFTP без shell (через internal-sftp + chroot) Нет Да (chroot) Максимальная Дизайнеры, веб-мастера, автоматизация
FTP/FTPS сторонний (vsftpd, proftpd) Нет Ограниченно Ниже (FTP хуже шифрует) Наследие, массовый хостинг

Примеры и кейсы

  • Положительный: SFTP-доступ для upload файлов на сайт, дизайнер не может зайти в shell, всё работает, безопасно.
  • Отрицательный: Если забыть про chroot или права на папку — sftpuser не сможет ничего делать (ошибка “Permission denied”). Следи за ls -l /home/sftpuser!
  • Автоматизация: Скрипты баккапа могут по sftp класть/забирать файлы прямо из chroot-каталога.

Полезные команды


# Проверить пользователя и shell:
getent passwd sftpuser

# Проверить статус sshd:
sudo systemctl status sshd

# Проверить права на папки:
sudo ls -ld /home/sftpuser /home/sftpuser/files

Похожие решения и альтернативы

  • vsftpd, proftpd — классика мира FTP (меньше шифрования, но больше “олдскульности”).
  • rclone serve sftp — быстро поднять SFTP над папкой для тестов (но для продакшена не советую!). Официальный гайд
  • OpenSSH SFTP + ключи — к доступу можно добавить авторизацию по ssh-ключу без паролей (ещё безопаснее).

Интересные факты и идеи для использования

  • Через такой SFTP можно быстро интегрировать загрузку логов или отчётов из 1С, CRM, сканеров — любой автоматизации файлов.
  • Можно нарезать десятки пользователей с разными chroot-каталогами — каждый видит только свой “балкон”.
  • Работает с большинством WinSCP, FileZilla, Cyberduck, scp — синергия out of the box.
  • Отличный лайфхак — даёшь клиенту ДОСТУП к папке, но не к серверу.

Возможности для автоматизации и скриптов

  • Деплой статики или медиафайлов на сайт через bash/python без риска “сломать систему”.
  • Скрипты бэкапа или выгрузки данных по расписанию (cron + sftp).
  • Интеграция с облаками и CI/CD (Gitea/Drone уже дружат с sftp).

Выводы — когда использовать и почему

Режим SFTP без shell — оптимальный выбор, если нужно делегировать права на загрузку файлов, не открывая дверь в сервер полностью. Этот способ хорош для хостинга сайтов, автоматизации резервных копий, интеграции с внешними сервисами (безопаснее, проще, удобнее). Гибко, нативно, без установки сторонних FTP-серверов. Заказ VPS (для ручной настройки) — здесь. Если нужна максимальная мощность — тут.

  • OpenSSH встроен в Ubuntu, сильно облегчает жизнь.
  • Возможность задать chroot, shell, права — гибкая конфигурация.
  • Полная статистика и мониторинг логов через /var/log/auth.log.

Ну и напоследок: не забывай тестировать доступ от имени нового пользователя, чтобы не возникло сюрпризов. SFTP — твой друг в мире “минимальных” прав!

Полезные ссылки:
Ubuntu SSH Guide
sshd_config man


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

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