![SFTP 기능 "로컬 쉘로 이스케이프" 사용을 제한하는 방법은 무엇입니까?](https://linux55.com/image/156877/SFTP%20%EA%B8%B0%EB%8A%A5%20%22%EB%A1%9C%EC%BB%AC%20%EC%89%98%EB%A1%9C%20%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84%22%20%EC%82%AC%EC%9A%A9%EC%9D%84%20%EC%A0%9C%ED%95%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
파일 서버의 액세스를 제한하기 위해 다음 구성을 설정했습니다.
파일 서버에서(Debian Wheezy)
data-reader
이름이 지정된 그룹에 집도 없고 쉘도 없는 사용자를 만듭니다data
.- 루트가 소유한 디렉터리와 그룹이 액세스할 수 있는 하위 디렉터리를 만듭니다
/somewhere/share/
./somewhere/share/data/
data
- 다음 구성을 추가합니다
/etc/sshd_config
.Match group data ChrootDirectory /somewhere/share ForcedCommand internal-sftp X11Forwarding no AllowTcpForwarding no
이렇게 하면 data-reader
SFTP를 사용하여 디렉터리의 파일만 읽을 수 있습니다 /somewhere/share/data
. 좋아요
클라이언트에서(또 다른 데비안)
sftp data-reader@<server_ip>
서버에 접속하는데 사용됩니다 . SFTP 콘솔에서 읽기 전용 액세스를 위해 SFTP 명령에 또는 등을 사용할 수 있지만 /somewhere/share/data
다른 경로는 볼 수 없습니다. 좋아요! 이것이 내가 원하는거야.ls
get
하지만다음은 좋은 명령 목록입니다 help
.
! Escape to local shell
내가 달리면
!ls /
/
실제로 서버에 있는 모든 파일을 볼 수 있어요! 모든 파일의 내용을 볼 수 있습니다. 하지만 나는 그것을 원하지 않습니다. 사용자가 자신의 디렉토리를 종료할 수 없도록 하고 싶습니다.
이 "escape" 명령에 대한 액세스를 제한하는 방법이 있습니까?
당신의 도움을 주셔서 감사합니다.
답변1
로컬 쉘로 탈출한다는 것은 사용자가 이제 클라이언트에 쉘을 가지고 있다는 것을 의미합니다.아니요서버에서. 두 시스템의 /tmp에 있는 파일(다른 이름!)을 터치하면 차이점을 확인할 수 있습니다.