maliko
Goto Top

FTP-User hat keine Uploadrechte

Moin,

ich hab grad ein kleines Problem mit meinem Server. Und zwar habe ich auf einem Ubuntu-Server einen LAMP-Server eingerichtet der auch einwandfrei funktioniert. Dazu habe ich als FTP-Server vsftpd installiert, damit ich nicht über SSH die Daten hochschieben muss.

Doch hier ist das Problem. Und zwar kann ich da der Home-Ordner des Users welcher für den FTP-Zugangs benutzt wird www-data:www-data gehört nichts hochladen. Ich habe den Benutzer auch der Gruppe www-data hinzugefügt, er hat trotzdem keine uploadrechte. Ändere ich den Besitzer auf benutzer:www-data kann der Benutzer zwar via FTP auf das Verzeichnis zugreifen, allerdings kann dann der Apache2 nicht mehr auf die Daten zugreifen.

Kann mir da jemand vielleicht helfen wie ich das Problem beheben kann? Ich hab nicht wirklich Lust jedes mal wenn ich etwas hochladen will erst mal via SSH den Besitzer des Verzeichnisses zu ändern, weil dann kann ich den Upload auch gleich via SSH machen.

Ich hätte es gern so, dass sowohl UserX als auch www-data auf den Ordner zugreifen dürfen.

Danke euch schon mal in Voraus.

Viele Grüße
Maliko

PS: Ja ich bin kein Hauptberuflicher Sysadmin sondern eigentlich Anwendungsentwickler, habe aber durch mein Studium Grundkenntnisse in Unixsystemen, die nur leider etwas eingerostet sind.

Content-Key: 8165936952

Url: https://administrator.de/contentid/8165936952

Printed on: April 27, 2024 at 05:04 o'clock

Member: Cleanairs
Solution Cleanairs Aug 16, 2023 at 13:13:31 (UTC)
Goto Top
Du kannst das Problem beheben, indem du die Berechtigungen für das Verzeichnis änderst. Führe dazu die folgenden Befehle aus:

sudo chown -R user:www-data /home/user
sudo chmod -R 755 /home/user
Dies wird den Benutzer "user" als Eigentümer des Verzeichnisses "/home/user" festlegen und die Berechtigungen für das Verzeichnis auf 755 setzen. Dies bedeutet, dass der Benutzer "user" und die Gruppe "www-data" Schreib-, Lese- und Ausführungsberechtigungen für das Verzeichnis haben.

Sobald du die Berechtigungen geändert hast, solltest du in der Lage sein, über FTP Dateien in das Verzeichnis hochzuladen und der Apache2 sollte weiterhin auf die Dateien zugreifen können.
Member: Maliko
Maliko Aug 16, 2023 at 13:18:01 (UTC)
Goto Top
Wow. Jap ich bin dämlich. Den ersten Schritt hatte ich gemacht. Hatte aber nicht daran gedacht die Zugriffsrechte zu aktualisieren. Danke dir jetzt funktioniert es.
Member: Cleanairs
Cleanairs Aug 16, 2023 at 13:20:58 (UTC)
Goto Top
Top. ;)
Member: LordGurke
LordGurke Aug 17, 2023 updated at 01:48:24 (UTC)
Goto Top
Obacht!

Zitat von @Cleanairs:
sudo chown -R user:www-data /home/user
sudo chmod -R 755 /home/user
Dies wird den Benutzer "user" als Eigentümer des Verzeichnisses "/home/user" festlegen und die Berechtigungen für das Verzeichnis auf 755 setzen.

Nein, es wird das Verzeichnis und alles darin ändern. Du arbeitest rekursiv.
Und du machst damit alle darin enthaltenen Dateien ausführbar, was man aus Sicherheitsgründen niemals so machen sollte.

In diesem Fall ist die Rekursivität das erste von mehreren Problemen, eines können wir einfach durch weglassen des "-R" beheben.
Falls es doch rekursiv sein soll, dann bitte immer nur mit
chmod -R o+rwX,g+rX ~benutzername

Durch das große X wird das Executable-Bit nur auf Verzeichnisse gesetzt und macht nicht jede Datei ausführbar. Und, vielleicht auch nicht uninteressant, eventuell absichtlich anders vergebene Berechtigungen bleiben erhalten.

Und ebenfalls als Tipp: Ein Home-Verzeichnis muss nicht zwingend in /home liegen, deshalb arbeitet man bei sowas immer mit "~benutzername", was der Platzhalter für das dem Nutzer zugewiesene Home-Verzeichnis ist.

Aber auch da will man sich dringend Gedanken machen, ob man das so will:
Denn die Gruppeneigentümerschaft des Home eines Benutzers auf www-data zu ändern wird zu folgendem führen:
- Du kannst für den User keine SSH-Keys mehr nutzen (sshd prüft die Verzeichnisrechte und das ist gut so)
- Der Webserver kann jetzt nach deinen Berechtigungs-Änderungen auf alles zugreifen, einschließlich privater SSH- und GPG-Schlüssel, Git-Zugangsdaten, Bash-History, Configs,...
Du hast damit gerade ein riesengroßes Sicherheitsproblem geschaffen!

Wenn man Webseiten aus dem regulären User-Home ausliefert, dann üblicherweise mit "mod_userdir", was aus ~benutzer/public_www ausgeliefert wird. Dann reicht es, hier Zugriffsrechte auf dieses eine Verzeichnis zu gewähren.
Aber auch wenn das Home woanders liegt, sollte der Webserver immer aus einem Unterverzeichnis ausliefern, um die angesprochenen Probleme sicher zu umgehen.

@Maliko: Davon abgesehen: Was spricht gegen SFTP? Fühlt sich wie FTP an, basiert aber auf SSH, kann mit Public-Keys für die Anmeldung genutzt werden und ist verschlüsselt face-wink