Montieren Sie ein Remote-Dateisystem mit SSHFS [geschlossen]
Frage
Ok, ist das Setup ein wenig gewunden. Tadeln Sie mich nicht, ich bin nicht die Sysadmin.
Hier ist die Situation. Es ist eine Maschine, die ich in von außerhalb des Netzwerks SSH kann. Ich kann nur remote als root (ja, Sie haben richtig gehört) mit meinem privaten Schlüssel. Ich weiß, dass es typisch ist, sich als Benutzer anmelden und dann Rechte erhöhen, aber in diesem Fall habe ich das Gegenteil tun.
Das Problem ist, dass ich SSHFS, um das Dateisystem einzuhängen remote verwenden möchten. Ich habe diese perfekt arbeiten. Aber ich mag nicht jede Datei, die ich mit Dreck Root-Rechte zu reflektieren. Ich möchte zunächst (su zu einem Benutzerkonto) de-erheben.
Wer weiß, wie ich dies mit SSHFS tun?
Lösung
Sie können ein Skript erstellen, um den Anruf zu dem SFTP-Subsystem auf der entfernten Maschine abzufangen. Legen Sie das folgende Skript irgendwo auf dem Remote-Server, sagen wir mal / root / bin / sftp_intercept:
#!/bin/sh
exec sudo -u less_privileged_user /usr/lib/openssh/sftp-server
und dann den Anruf wie folgt:
sshfs root@remote:dir mountpoint -o sftp_server=/root/bin/sftp_intercept
Das sollte dann die gewünschten Ergebnisse liefern.
Sie erhalten eine apropriate sudoers Eintrag müssen sudo Arbeit ohne sie aufgefordert werden, ein Kennwort zu machen, und nicht vergessen „chmod 755 ~ / bin / sftp_intercept“.
Also, stellen Sie sicher, dass / usr / lib / openssh / SFTP-Server ist in der Tat der Weg zum SFTP-Server. Wenn nicht, dann ist es vielleicht / usr / lib / SFTP-Server.
Andere Tipps
Die sshfs manpage legt nahe, dass vorbei
-o uid=$YOURUID -o gid=$YOURGID
Ihren sshfs Aufruf sollte den Benutzer / die Gruppe der Dateien einstellen, dass Sie diese uid / gid erstellen. Sie müssen diese auf dem Remote-System zu finden, natürlich.