Я хочу создать пользователя для своего сервера 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
серверВы также можете столкнуться с некоторыми проблемами с разрешениями (прочтите ошибки в журнале сервера!).