Wie kopiere ich Dateien mit WinSCP in `/ var / www`?

11

Wenn ich versuche, /var/wwwmeine Webdateien in Apache auf meiner ec2 Ubuntu-Instanz abzulegen, wird eine Fehlermeldung angezeigt, dass ich keine Berechtigung habe.

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

Wie erteile ich mir die Erlaubnis dazu oder wie kann ich Dateien /var/wwwmit WinSCP am besten kopieren ?

Andrew
quelle

Antworten:

15

Ich habe den gleichen Fehler in WinSCP erhalten. Eine Lösung besteht darin, den Besitz des Ordners '/ www /' mit zu ändern chown. Auf diese Weise können Sie den Benutzer, mit dem Sie sich anmelden, zum Eigentümer machen, anstatt "root" als Eigentümer zu verwenden. Ich verwende eine Instanz von Amazon Linux anstelle von Ubuntu, aber dieser Befehl hat bei mir funktioniert:

sudo chown -R -v ec2-user /var/www/

Der Benutzer 'ec2-user' ist der Benutzer, mit dem ich mich anmelde.

Potenziell nützliche Links

chrisfargen
quelle
Ihre Hilfeanfragen als Teil einer Antwort auf die Frage eines anderen erhalten wahrscheinlich keine Antworten oder hilfreiche Rückmeldungen. Um dies zu erreichen, ist es wahrscheinlich besser, wenn Sie Ihre eigene Frage mit den genauen Details stellen, die Sie benötigen.
Killermist
9

Aktivieren Sie Schreibberechtigungen für den Benutzer, der sich über WinSCP anmeldet. Es gibt zwei Möglichkeiten, dies zu tun.

Die erste Möglichkeit besteht darin, die Berechtigungen für den Ordner so zu ändern, dass jeder darauf schreiben kann. Dies ist nicht die beste Sicherheit.

chmod 777 /var/www


Die zweite Möglichkeit besteht darin, Ihren Benutzer zu der Gruppe hinzuzufügen, der das Verzeichnis gehört, und dann die Berechtigungen für die Gruppe festzulegen, in das Verzeichnis zu schreiben.

Finden Sie heraus, wem das Verzeichnis gehört:

ls -l /var | grep www

Sie sehen so etwas wie: drwxr-x --- 9 www-data www-data 4096 14. Juli 2009 www Das Wichtigste sind die beiden Namen root und root. In diesem Fall ist der Eigentümer des Verzeichnisses www-data und die Gruppe des Verzeichnisses ist www-data. Nun fügen Sie Ihren Benutzer zur Gruppe www-Daten hinzu.

usermod -G www-data user

Fügen Sie nun einfach die Schreibberechtigung zur Gruppe hinzu.

chmod 770 /var/www

Jetzt

ls -l /var | grep www

sollte zurückgeben: drwxrwx --- 9 www-data www-data 4096 14. Juli 2009 www

Auf diese Weise können Sie in das Verzeichnis schreiben, ohne die Schreibrechte für alle zu öffnen.

Chris Ting
quelle
1
leichte Korrektur für die Genauigkeit - sudo chmod 777 / var / www - sudo usermod -G www-Daten (Benutzername) - sudo chmod 770 / var / www - Es kann funktionieren, je nachdem, wer Sie in Ihrem Beispiel sind, aber 'sudo' sollte funktionieren egal wer du bist (vorausgesetzt dein Login ist in / etc / sudoers für root / admin natürlich).
bshea
1

auf ec2 funktioniert das bei mir. Melden Sie sich über Putty mit dem Benutzer "ec2-user" bei box an und verwenden Sie die folgenden Befehle:

sudo root
chmod 777 <NAME_OF_FOLDER>

Hinweis: Dadurch wird allen Benutzern Schreibzugriff gewährt.

Sollte jetzt in der Lage sein, mit WinScp zu schreiben.

blauer Himmel
quelle
1

Das folgende Tutorial hat für mich funktioniert und bietet hilfreiche Screenshots. Um sich als normaler Benutzer mit sudo-Berechtigungen anzumelden, mussten lediglich einige WinSCP-Optionen angepasst werden: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Stellen Sie das Sitzungs- / Dateiprotokoll auf: SCP, geben Sie die IP-Adresse des Hosts / der Instanz, den Port - normalerweise 22 - und den regulären Benutzernamen ein. Geben Sie die Kennwortanmeldeinformationen ein, wenn die Anmeldung dies erfordert. Fügen Sie die entsprechende private Schlüsseldatei des Benutzers in Advanced / SSH / Authentication hinzu.

Durch Deaktivieren der erweiterten / SSH / Authentifizierung / Versuch "Tastaturinteraktive" Authentifizierung sollte Advanced / Environment / SCP Shell / Shell / Shell: sudo su - Sudo-Berechtigungen für den Zugriff auf Webserver-Verzeichnisse als Benutzer ohne Eigentümer bereitstellen.


Update: 08/03/2017

Die WinSCP-Protokollierung kann hilfreich sein, um Probleme zu beheben.

woncp.net/eng/docs/logging:

[WinSCP] Die Protokollierung kann auf der Seite "Protokollierung" des Dialogfelds "Einstellungen" aktiviert werden. Die Protokollierung kann auch über die Befehlszeile mit den Parametern / log und / xmllog aktiviert werden. Dies ist besonders bei Skripten hilfreich. In der .NET-Assembly wird die Sitzungsprotokollierung mithilfe von Session.SessionLogPath1) aktiviert.

Abhängig von WinSCP-Verbindungsfehlern muss bei einigen Serverinstallationen möglicherweise eine Anweisung zur Datei (Ubunto, CentOS, anderer Linux-Server) / etc / sudoers hinzugefügt werden, damit für einen bestimmten Benutzer kein TTY erforderlich ist. Das Erstellen einer Datei in /etc/sudoers.d/ (mit einem Tool wie Amazon Command Line Interface oder PuTTY) ist möglicherweise eine bessere Option als das Bearbeiten von / etc / sudoers. Einige / etc / sudoers-Versionen empfehlen es:

Diese Datei MUSS mit dem Befehl 'visudo' als root bearbeitet werden. Bitte ziehen Sie in Betracht, lokalen Inhalt in /etc/sudoers.d/ hinzuzufügen, anstatt diese Datei direkt zu ändern. Weitere Informationen zum Schreiben einer Sudoers-Datei finden Sie in der Manpage.

Wenn Sie eine Sudoers-Datei (als Root) über die Befehlszeile bearbeiten, sollte der Befehl 'visudo' zum Öffnen der Datei verwendet werden, da die Datei auf Syntaxfehler analysiert wird. /etc/sudoers.d/ -Dateien gehören normalerweise root und werden mit minimalen Berechtigungen geändert. Auf die Standarddatei / etc / sudoers kann verwiesen werden, da sie bei der Installation automatisch die empfohlenen chmod-Berechtigungen haben sollte. zB: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Hilfreiche Links:

  • Stackoverflow: stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

WinSCP-Forum: - winscp.net/forum/viewtopic.php?t=3046 - winscp.net/forum/viewtopic.php?t=2109

WinSCP Doc: https://winscp.net/eng/docs/faq_su

Mit dem SCP-Protokoll können Sie den folgenden Befehl als benutzerdefinierte Shell auf der Seite SCP / Shell des Dialogfelds Erweiterte Site-Einstellungen angeben:

sudo -s

[...]

Da WinSCP keine Terminalemulation implementieren kann, muss die Option sudoers deaktiviert sein.

Anweisungen in Ubuntu Apache / etc / sudoers empfehlen, Anweisungen zu /etc/sudoers.d hinzuzufügen, anstatt / etc / sudoers direkt zu bearbeiten. Abhängig von der Installation kann das Hinzufügen einer Direktive zu /etc/sudoers.d/cloud-init ebenfalls funktionieren.

Es kann hilfreich sein, einen SSH-Testbenutzer mit Sudo-Berechtigungen zu erstellen, indem Sie die in der Instanzdokumentation angegebenen Schritte ausführen, um sicherzustellen, dass der Benutzer Instanzeinstellungen empfohlen hat und alle Aktualisierungen von Server-Sudoer-Dateien durchgeführt und entfernt werden können, ohne andere Benutzer zu beeinträchtigen.

1keown
quelle
0

Sie müssen dem Benutzer Schreibberechtigungen erteilen und sich die vorherigen Berechtigungen mit merken stat /var/www.

Dann können Sie sie mit sudo chmod 666 /var/wwwändern und später bei Bedarf wieder ändern.

Consult man chmodund man sudoneben anderen Dateiberechtigungen Handbücher im Internet für weitere Informationen ...

Tamara Wijsman
quelle