WinSCP: SFTP Server mit sudo-Befehl ausführen

Wer die Amazon Elastic Compute Cloud (kurz Amazon EC2) benutzt, der wird festgestellt haben, dass ein Login als root-Benutzer aus Sicherheitsgründen bei den von Amazon vorgegebenen Images nicht möglich ist. Stattdessen soll man sich als ec2-user anmelden und Befehle des Superusers mit dem Kommando sudo ausführen.

Verwendet man einen SFTP-Client (wie etwa WinSCP), dann kann das einen negativen Effekt haben. Möchte man nämlich über die grafische Oberfläche eine Datei öffnen, auf die der ec2-user normalerweise keinen Zugriff hat, bekommt man nur eine Permission denied-Anzeige:

Um das zu umgehen, muss der SFTP Server der EC2-Instanz mit dem sudo-Befehl ausgeführt werden.

Die Binärdatei des SFTP Servers kann sich je nach Installationen an folgenden Orten befinden: /usr/libexec/openssh/sftp-server, /usr/lib/openssh/sftp-server oder /bin/sftp-server. Um die SFTP-Verbindung als Superuser zu benutzen, muss dann beispielsweise folgendes Kommando bei der Anmeldung ausgeführt werden: sudo su -c /usr/libexec/openssh/sftp-server.

Das kann man in WinSCP wie folgt einsellen:

  1. Gespeicherte Sitzung auswählen
  2. Bearbeiten
  3. Expertenmodus anwählen
  4. Umgebung -> SFTP auswählen
  5. sudo su -c /usr/libexec/openssh/sftp-server bei den Protokolloptionen für den SFTP Server eintragen
  6. Speichern
  7. Anmelden

Dieses Verfahren funktioniert allerdings nur, wenn man für die Anmeldung als ec2-user einen Schlüssel verwendet (und keine Passwort-Authentifikation).

Wer übrigens auch gleich nach der Anmeldung über PuTTY als Superuser eingeloggt werden will, der muss in der Datei /home/ec2-user/.bash_profile die Zeile sudo su hinzufügen.

Interessante Links:
How do I change user after login
Unterschied zwischen .bashrc und .bash_profile

Ein Gedanke zu „WinSCP: SFTP Server mit sudo-Befehl ausführen“

  1. Hallo Benny,

    danke für den Beitrag, ich wollte das so für meinen Kollegen einrichten, der unter Windows arbeitet, um auf einen Ubunzu-server zu zu greifen. Für Ubuntu müsste die Zeile dann wie folgt lauten (Du nanntest ja die verschiedenen Pfade):

    sudo su -c /usr/lib/openssh/sftp-server

    Leider klappt das Ganze aber nicht für den ubuntu-server 14.04. Ich bekomme folgende Fehlermeldung:

    „Kann das SFTP nicht initialisieren. Läuft auf dem entfernten Rechner ein SFTP Server-Programm?“

    Hättest Du vielleicht eine Idee wo das Problem liegen kann?

    Gruß

    Christofer

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.