Ubuntu Server 18.04에서 SFTP 서버를 구성하고 있습니다. 다른 계정을 나열하지 않고 작업 디렉터리를 직접 가리키는 SFTP 계정을 만들고 싶습니다. 예를 들어, 서버의 실제 작업 디렉터리가 이면 /sftpdir1/sftpdir2/user1
사용자는 /
대신 다음을 /user1
사용할 때와 같이 표시되어야 합니다 chrootdirectory
. FileZilla를 통해 로그인하면 아래 이미지와 같은 디렉터리를 찾아야 합니다.1파일을 업로드하고 다운로드할 수 있는 곳은 어디인가요?
업데이트: chrootdirectory를 설정하지 않는 이유/etc/ssh/sshd_config
동일한 그룹에 더 많은 사용자가 할당된 경우 동일한 을 사용하면 chrootdirectory
그 중 모든 사용자가 다른 모든 사용자의 작업 디렉터리를 볼 수 있습니다. 또는 로그인함으로써 사용자가 다른 사람의 디렉토리나 자신의 작업 디렉토리 트리를 보는 것을 원하지 않습니다. /
표시된 대로 보십시오.
답변1
/
사용자가 자신이 본 것을 쓸 수 없다는 점을 인정해야 합니다 . 따라서 실제로 홈 디렉토리를 chroot 디렉토리로 만들 수는 없습니다. "작업 디렉터리"가 홈 디렉터리를 참조하지 않는다면 신경 쓸 필요가 없습니다. 디렉토리를 생성하면 됩니다
/sftproot
|__ user-1
| |___ rw-dir
|__ user-2
| |___ rw-dir
그리고 set ChrootDirectory /sftproot/%u
. 이 user-x
디렉토리는 루트로만 쓸 수 있습니다. 어떤 사용자도 다른 사용자의 chroot 디렉토리를 볼 수 없습니다.
홈 디렉토리 사용
사용자가 자신의 홈 디렉터리를 보고 동일한 디렉터리 구조를 만들도록 하려면 다른 이름을 사용하는 것이 좋습니다.
/sftproot
|__ user-1
| |___ user-1
|__ user-2
| |___ user-2
번들 설치를 수행합니다.
mount --bind /home/user-1 /sftproot/user-1/user-1
이는 항목을 통해서도 수행할 수 있습니다 fstab
.