나는 파일에 대한 사용자의 액세스를 제한하고 싶었기 때문에(그의 디렉토리 바로 외부) chroot를 사용하고 로그인할 때 제한된 디렉토리를 그의 로그인 디렉토리로 만들었습니다.
그러나 이렇게 하면 cd ..
사용자는 자신의 디렉터리 외부의 모든 항목에도 액세스할 수 있습니다. 이 상황을 피하는 방법은 무엇입니까?
나는 이것을 사용했습니다 :
adduser --home Rest_folder --shell /bin/bash --no-create-home --ingroup www-data --ingroup ssh rest_user
답변1
SSH를 사용할 때 SFTP라는 하위 시스템을 사용할 수 있습니다(FTPS와 혼동하지 마세요). SFTP는 사용자가 cp
, mv
, , ls
, cd
... 와 같은 일반적인 파일 작업을 수행할 수 있는 셸을 제공합니다 mkdir
. rm
그러나 chroot 환경으로 인해 SFTP에 있는 다른 프로그램에는 /bin
이러한 방식으로 액세스할 수 없습니다. 이 chroot 환경은 SSH 데몬에 의해 설정되므로 세부 사항에 얽매일 필요가 없습니다.
SSH 사용자에 대해 chroot를 구성하려면 주로 다음 위치에 있는 sshd 구성 파일에 넣으십시오 /etc/ssh/sshd_config
.
Match User rest_user
ChrootDirectory /home/rest_user
ForceCommand internal-sftp
이 로그인에 대해 추가 플래그를 설정할 수도 있습니다.
AllowTCPForwarding no
X11Forwarding no
자세한 내용은 매뉴얼 페이지를 참조하십시오 sshd_config (5)
.