가장 좋은 방법은 사용자를위한 chroot jail을 만드는 것입니다. 집에 도착하면 여기에 답을 정리할 것이지만 솔루션을 블로그에 게시했습니다.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
아래는 위의 게시물에서 얻은 대부분의 지침입니다.
먼저 Workgroup Admin에서 새 사용자를 작성하고 Server Admin을 통해 SSH에 대한 액세스 권한을 지정하거나 SSH 액세스 권한이있는 그룹에 지정해야합니다. 자세한 내용은 다음과 같습니다.
터미널에서 바로 시작하십시오.
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
추가 된 모든 새로운 사용자는 다음과 같이 표시됩니다.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
chroot jail의 경로는 모든 폴더가 소유해야합니다 root
. 폴더가 속한 그룹이 중요하지 않다고 생각합니다. 위에서 한 것은
- 지원
/etc/sshd_config
- 루트 디렉토리의 소유권을
root
- 루트 디렉토리의 권한을 755로 변경
- chroot 폴더를 만듭니다
- chroot 폴더 안에 사용자 폴더를 만듭니다
- 사용자 폴더 안에 사용자가 수정할 수있는 폴더를 만듭니다.
- 소유권 및 권한 설정
이제 /etc/sshd_config
다음 을 편집 하십시오.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
이것은 chroot jail을 만들어 사용자가 로그인 할 때 폴더에 폴더를 드롭하고 /chroot/user
, 해당 폴더에 물건을 추가 할 수있는 폴더 /chroot/user/scratchpad
입니다.
'Chroot Users'에 대해 Workgroup Admin에서 그룹을 생성하려면 Workgroup Admin에서 생성 한 새 사용자를 그룹에 추가하면 /etc/sshd_config
파일 을 계속 편집 할 필요가 없습니다 . 위 대신 다음을 추가하십시오. Server Admin에서 SSH 액세스 ACL에 'Chroot Users'그룹을 추가하십시오.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
위의 작동 여부를 테스트하려면 터미널에서 다음을 발행하십시오.
$ sftp user@domain.com
Password:
sftp>