Я создаю пользователя FTP в Linux Ubuntu Server 14.04 LTS, но когда я пытаюсь войти через FileZilla с SFTP, я получаю следующую ошибку:
Received unexpected end-of-file from SFTP server
Если я попытаюсь подключиться к своему пользователю root, все будет в порядке, поэтому я, должно быть, что-то пропустил при создании нового пользователя. Вот что я сделал:
Прежде всего, я создал фальшивую оболочку в / etc / shells, назвав ее / bin / false. Я создаю группу с именем ftpgroup.
sudo groupadd ftpgroup
Затем я создал в нем пользователя ftp
sudo useradd --home /var/www/html/mydir --group ftpgroup --shell /bin/false myftpuser
Я дал пароль пользователю
sudo passwd myftpuser
И сделал его владельцем домашнего каталога, который я ему дал
sudo chown -R myftpuser /var/www/html/mydir
наконец я установил привилегии для папки
sudo chmod 755 /var/www/html/mydir
Я знаю, что изменение оболочки / bin / false на / bin / bash заставит ее работать, но это даст моему пользователю возможность доступа к командам оболочки, чего я бы по возможности избегал, я просто хочу, чтобы он имел доступ к файлам в свой каталог и не более того.
Измените владельца вашего / var / www / html / mydir с помощью команды ниже
sudo chown -R root:ftpgroup /var/www/html/mydir
проверьте это для справки http://devtidbits.com/2011/06/29/implement-a-sftp-service-for-ubuntudebian-with-a-chrooted-isolated-file-directory/
Вы можете изменить /etc/ssh/sshd_config
немного и использовать
Match User myftpuser
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Конечно, заменить username
с именем пользователя, которое вы хотите ограничить. Также возможно сопоставить группу пользователей с Match Group
параметр.
В любом случае, после этой модификации и перезагрузки конфигурации вашего ssh-сервера он должен работать.