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 서버를 찾을 수 없기 때문에 sftp 서버를 시작할 수 없습니다. 하지만 Chroot와 이 SFTP 서버가 필요합니다. 이를 수행할 수 있는 방법이 있습니까?
추신: 모든 것이 필수 커널 모듈 없이 가상 서버에서 실행되므로 마운트용 Autofs는 옵션이 아닙니다.
답변1
sftp-server
바이너리와 모든 종속성( )을 ldd /usr/lib/openssh/sftp-server
chroot에 복사하면 실행할 수 있습니다.