
Ich versuche den Zugriff auf SFTP auf nur ein Benutzerkonto zu beschränken. Nach dem Login sollen einige Befehle ausgeführt werden. Dazu habe ich forcecommmand in meine sshd_config eingefügt:
Match group stream
#ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand sudo /etc/mountsftp.sh
#ForceCommand internal-sftp
Das funktioniert gut und mein Befehlsskript:
#!/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
wird ausgeführt. Aber nach dem CHROOT ist es nicht möglich, den SFTP-Server zu starten, da er nach dem Chroot nicht gefunden wird. Aber ich brauche Chroot sowie diesen SFTP-Server. Gibt es eine Möglichkeit, dies zu erreichen?
PS: Autofs für das Mounten ist keine Option, da alles auf einem virtuellen Server ohne die benötigten Kernelmodule ausgeführt wird.
Antwort1
Kopieren Sie die sftp-server
Binärdatei und alle ihre Abhängigkeiten ( ldd /usr/lib/openssh/sftp-server
) in das Chroot-Verzeichnis und Sie können sie ausführen.