OpenSSH 구성만 사용하여 사용자를 /home/%u 디렉터리로 제한할 수 있습니까? 인터넷에서 찾은 지침에 따라 SSH 서버를 중지하고 다음을 파일에 추가했습니다 sshd_config
.
Match group sftpusers
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
그런 다음 SSH 서버를 다시 시작했습니다.
sftpusers
참고로 사용자를 그룹 에 추가했습니다
내 사용자는 여전히 IE를 탐색할 수 있으며 cat 명령을 사용하여 내 시스템의 전체 파일 구조에 있는 파일 내용을 cd /
나열할 수 있습니다 ( ).cat /usr/bin/test.sh
저는 Ubuntu Server 12.04 LTS를 실행하고 있습니다.
답변1
첫째, 가 아니더라도 사용자의 집에 대한 확장 으로 ChrootDirectory %h
대신 사용하는 것이 좋습니다 ./home/%u
%h
/home/$USER
이제 실제 문제를 살펴보겠습니다. internal-sftp
명령을 강제로 실행해야 합니다. 다음 구성은 나에게 적합하며 귀하에게도 적합합니다.
Match group sftp
ForceCommand internal-sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
사용자의 집은 root
소유되어야 하며 위에서 언급한 755 권한을 가지고 있어야 합니다.
drwxr-xr-x 22 root root 4.0K Nov 24 2011 /home/testuser
답변2
사용fakechroot
SSH에 사용할 사용자 및 디렉터리를 준비합니다. 예를 들어
/bin
특정 명령을 디렉터리에서 사용자 디렉터리로 복사 할 수 있습니다bin
. 사용자 이름은test
이고 사용자 디렉터리는 이라고 가정합니다/home/test
.설치
fakechroot
패키지.# Debian-based distros sudo apt install fakechroot
편집할 OpenSSH 서버 구성 파일(예
/etc/ssh/sshd_config
: )을 엽니다.구성 파일에 다음 줄을 추가합니다(또는 기존 줄이 있는 경우 교체).
# Replace test with your user of choice Match User test ForceCommand fakechroot chroot /home/test # Other options
문서를 저장합니다. 원하는 특정 포트에서 OpenSSH 서버를 시작합니다. 이제 SSH를 통해 로그인을 시도해 보세요. 모든 것이 예상대로 작동해야 합니다.
도움이 되었기를 바랍니다!
답변3
나는 이 질문이 오래되었다는 것을 알고 있지만 이것은 나에게 도움이 되었습니다.
chmod o-x /home/*
sudo에서 위 명령을 실행하면 사용자가 자신의 홈 디렉터리로 제한됩니다.