
하나의 사용자 계정으로만 SFTP에 대한 액세스를 제한하려고 합니다. 로그인 후에는 몇 가지 명령이 실행되어야 합니다. 따라서 sshd_config에 forcecommmand를 삽입했습니다.
Match group stream
#ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand sudo /etc/mountsftp.sh
#ForceCommand internal-sftp
이것은 잘 작동하며 내 명령 스크립트는 다음과 같습니다.
#!/bin/bash
now=$(date +"%T,%D")
echo "Login : $now" >> /login.log
sshfs usrl@server:/usbshare1-2 /media/pp -o reconnect -o allow_other -o workaround=all
mount --bind /media/pp/Serien /home/stream/Serien
J=$HOME
#
#exit by calling a shell to open for the ssh session
#internal-sftp
#cp -v /usr/lib/openssh/sftp-server $J/bin/
chroot $J /usr/lib/openssh/sftp-server
실행됩니다. 그러나 CHROOT 이후에는 chroot 이후에 찾을 수 없기 때문에 sftp-server를 시작할 수 없습니다. 하지만 이 SFTP 서버뿐만 아니라 Chroot도 필요합니다. 이 작업을 수행할 수 있는 방법이 있나요?
PS: 마운트를 위한 Autofs는 옵션이 아닙니다. 모든 것이 필요한 커널 모듈 없이 가상 서버에서 실행되기 때문입니다.
답변1
sftp-server
바이너리와 모든 종속성( )을 chroot에 복사 ldd /usr/lib/openssh/sftp-server
하면 실행할 수 있습니다.