sftp, chroot + chdir을 사용자 홈으로?

Sep 25 2020

다음과 같은 구성 이 있습니다.

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 이후)을 강제로 사용자의 집으로 이동합니다.
  • 액세스 규칙을 조금 완화
  • ...

동일한 디렉토리 트리와 액세스를 유지하면서?

답변

2 MichaelHampton Sep 25 2020 at 23:25

sshd는 작업 디렉토리가 존재하지 않기 때문에 사용자의 홈 디렉토리로 변경할 수 없습니다. 따라서 작업 디렉토리를로 설정합니다 /.

이 사용자에게 홈 디렉토리를 할당했습니다 /home/sftp/allu. 그러나 그런 다음 사용자를 /home/sftp. 즉, chroot와 관련하여 해당 디렉토리는 /allu! 아닙니다 /home/sftp/allu.

chroot로 인해 로그인 한 사용자가 액세스 할 수있는 루트 디렉토리가 파일 시스템의 하위 지점으로 변경되고 모든 경로가 그에 상대적임을 알아야합니다. 따라서 사용자가 /home/sftp/alluchroot 디렉토리 내부에 액세스해야한다면 /home/sftp실제 파일 시스템 외부에있는 디렉토리는 /home/sftp/home/sftp/allu.