
Я пытаюсь создать пользователя lenny, который имеет права на чтение и запись в папке /home/lenny/
и не имеет оболочки, а только доступ через SFTP. Я делаю следующее:
useradd lenny
mkdir /home/lenny
usermod -d /home/lenny lenny
passwd lenny
chown lenny:lenny /home/lenny
chmod 755 /home/lenny
usermod -s /bin/false myuser
Затем я изменил /etc/ssh/sshd_config
:
Subsystem sftp internal-sftp`
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
Теперь, когда я это сделаю, sftp lenny@server
я могу легко выйти из CHROOT, выполнив команду cd /
и ls -la
, я все увижу!
Почему так??? Я не понимаю, конфигурация должна быть в порядке, или я ошибаюсь?
решение1
Вы перезапустили службу sshd после внесения изменений /etc/ssh/sshd_config
?
sudo /etc/init.d/ssh restart
Убедитесь, что каталог chroot для пользователя sftp (в данном случае /home/lenny
) принадлежит пользователю root, а не пользователю sftp. chmod 755
Это правильно.
Также для дополнительной безопасности я бы добавил следующие две строки:
Match User lenny
ChrootDirectory /home/lenny
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Перезапустите службу sshd, и у вас должен появиться желаемый chroot.