sftp와 해당 홈 폴더를 루트하는 데 문제가 있습니다. 사용자의 집에 글을 쓰고 싶지만 그렇게 할 수 있는 적절한 권한이 없습니다.
sshd_config
Match User demo
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
사용자
demo:x:1013:1014::/home/ftp/demo2:/bin/false
목차
root@xxx:/# ls -l /home/ftp/
drwxr-xr-x 2 root root 4096 Nov 3 13:35 demo2
에러 메시지
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
Write failed: Broken pipe
/home/ftp/demo2 아래 폴더에 쓸 수 있다는 것을 알고 있지만 써야 합니다./홈/ftp/데모2내부 폴더에는 없으므로 필수입니다.
바꿔보았어요데모 2권한 및 사용자/그룹은 있지만 쓸 수는 없습니다.
그리고..다른 질문도 있습니다. 집이 /home/ftp 아래에 있는 3명의 사용자가 있지만 반면에 집이 다른 경로에 있어서 사용할 수 없는 일부 사용자도 있습니다.Chroot 디렉토리/home/ftp/%u, %h를 사용해야 합니다
이를 수행할 수 있는 방법이 있습니까?
감사합니다!
답변1
다음과 같이 각 사용자에 대해 다른 chroot 위치를 설정할 수 있습니다.
Match User a
Configuration for user a
Match User b
Configuration for user b
보안상의 이유로 OpenSSH의 SFTP 하위 시스템은 루트가 소유하지 않은 디렉터리로의 chroot를 거부하므로 루트가 아니면 chroot 디렉터리에 새 파일을 만들 수 없습니다. 사용자 ID를 0으로 변경하면 사실상 루트가 됩니다.나쁜아이디어. 루트가 되면 사용자는 chroot 감옥에서 벗어날 수 있을 뿐만 아니라 최소 권한 원칙을 위반하여 시스템에서 모든 작업을 수행할 수 있는 권한을 얻게 됩니다. 사용자 ID를 다시 일반 ID로 변경하는 것이 좋습니다.
더 나은 보안을 위해 chrooted SFTP를 사용하기로 선택한 경우 chroot는 보안을 위해 설계되지 않았고 이를 우회할 수 있는 방법이 많이 알려져 있기 때문에 이것이 유효한 옵션인지 의심스럽습니다.