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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top