sftp, chroot + chdir을 사용자 홈으로?
다음과 같은 구성 이 있습니다.
AllowUsers sftpu
Match Group sftpg
ChrootDirectory /home/sftp
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
passwd항목 (그룹 7700의 이름은 sftpg)
sftpu:x:7700:7700::/home/sftp/allu:/bin/false
그리고 alludir
drwxrwxr-x 4 guacam sftpg 4096 Sep 16 2019 /home/sftp/allu/
거의 작동합니다. 의 chroot는 작동하지만, 그 사람이 말하는 것을 달리
chroot 후 sshd (8)는 작업 디렉토리를 사용자의 홈 디렉토리로 변경합니다.
로그인 후 사용자의 작업 디렉토리는 /home/sftp, 아니고 /home/sftp/allu내 생각 엔 ( 그룹이 액세스 권한을 가지고 있고 쓸 수 있는 동안 . 여러 사용자가 동일한 디렉토리를 공유해야 하기 때문에) /home/sftp/allu속 guacam하고 속하지 않기 때문 입니다.sftpusftpgrwxalluallu
위의 구성에 결함이없는 한 sshd 하위 시스템에 다음 중 하나에 대한 명령이 있습니까?
- chdir (chroot 이후)을 강제로 사용자의 집으로 이동합니다.
- 액세스 규칙을 조금 완화
- ...
동일한 디렉토리 트리와 액세스를 유지하면서?
답변
sshd는 작업 디렉토리가 존재하지 않기 때문에 사용자의 홈 디렉토리로 변경할 수 없습니다. 따라서 작업 디렉토리를로 설정합니다 /.
이 사용자에게 홈 디렉토리를 할당했습니다 /home/sftp/allu. 그러나 그런 다음 사용자를 /home/sftp. 즉, chroot와 관련하여 해당 디렉토리는 /allu! 아닙니다 /home/sftp/allu.
chroot로 인해 로그인 한 사용자가 액세스 할 수있는 루트 디렉토리가 파일 시스템의 하위 지점으로 변경되고 모든 경로가 그에 상대적임을 알아야합니다. 따라서 사용자가 /home/sftp/alluchroot 디렉토리 내부에 액세스해야한다면 /home/sftp실제 파일 시스템 외부에있는 디렉토리는 /home/sftp/home/sftp/allu.