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-serverbei 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

