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:
- Gespeicherte Sitzung auswählen
- Bearbeiten
- Expertenmodus anwählen
- Umgebung -> SFTP auswählen
sudo su -c /usr/libexec/openssh/sftp-server
bei den Protokolloptionen für den SFTP Server eintragen- Speichern
- 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
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