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

Пользователь может получить доступ только к одному каталогу с помощью scp

Я хочу создать пользователя для своего сервера Ubuntu. Я буду использовать этого пользователя для копирования некоторых файлов с сервера на свой локальный компьютер. Так что разрешения должны быть действительно ограничены. Этот пользователь может связаться только с / некоторые / путь каталог на сервере и читать файлы. Ничего более.

Для этого я создал пользователя:

sudo useradd scp_user -M -d /some/path
sudo groupadd scp_group
sudo usermod scp_user -g scp_group
sudo usermod scp_user -s /bin/false  # disable ssh login
sudo chown -R scp_user:scp_group /some/path

И в моем файле конфигурации ssh:

Match Group scp_group
    ChrootDirectory %h
    #ForceCommand scp 
    AllowTcpForwarding no

Но получаю ошибку:

scp scp_user@IP:/some/path/test.zip test.zip
scp_user@IP's password:
Could not chdir to home directory /some/path: No such file or directory
/bin/false: No such file or directory

Подскажите, пожалуйста, какой шаг мне не хватает?

В вашем вопросе есть различные недостатки, как уже указывали другие:

  • В ChrootDirectory помещает вашего пользователя в тюрьму в его домашнем каталоге
  • В этом каталоге нет /bin/false исполняемый файл (ни /bin/scp что потребуется для scp сам).

Вы также можете:

  • Копировать scp двоичный файл и его необходимые динамически загружаемые библиотеки в chroot (домашний каталог пользователя)
  • Измените оболочку пользователя обратно на /bin/bash или /bin/sh
  • Копировать bash или sh двоичный файл и его необходимые динамически загружаемые библиотеки в chroot (домашний каталог пользователя)
  • (это ужасно ...)

Или просто используйте sftp:

  • Уточнить Subsystem sftp internal-sftp (и, возможно, ForceCommand internal-sftp) в sshd_config
  • Начать сначала sshd сервер

Вы также можете столкнуться с некоторыми проблемами с разрешениями (прочтите ошибки в журнале сервера!).