vsFTPd Standard-Berechtigungen für hochgeladene Dateien unter Ubuntu funktionieren nicht


14

Ich habe einen Server mit Ubuntu 12.10 x64 und die letzte Version von vsFTPd.

Mein Benutzer example.com hat seinen Home-Ordner eingestellt auf /var/www/example.com,

Ich habe darin einen public_html-Ordner erstellt und ihm 777Berechtigungen gegeben und die Schreibberechtigungen des privaten Benutzerordners entfernt. Alles funktioniert gut, aber:

Jede Datei, die ich per FTP (mit SmartFTP) hochlade, erhält eine chmod von 0.

Meine vsftpd.confhatte nur eine Zeile im Zusammenhang:

local_umask=022.

Ich habe versucht zu wechseln:

file_open_mode=777
local_umask=002

So würden meine Dateien 775sofort nach dem Hochladen erhalten.

Aber nur meine hochgeladenen Ordner erhalten 775Berechtigungen.

Meine hochgeladenen Dateien erhalten 1411 permissions

Kann mir jemand helfen, das zu lösen?


Sie müssen dem FTP-Benutzer die Berechtigung erteilen.
Gex

Antworten:


11

Am Ende habe ich verwendet

file_open_mode=0777
local_umask=022

auf der vsftpd.conf. Das Problem war, dass sowohl der FTP-Benutzer als auch der WWW-Daten-Benutzer Berechtigungen zum Schreiben benötigten, so dass ich WWW-Daten und FTP-Benutzer zur WWW-Daten-Benutzergruppe hinzufügen musste und CHMOD -R 775 alle Dateien auf / var / www - auf diese Weise, Mit 775 CHMOD hätte die Gruppe die Berechtigung zum Lesen, Schreiben und Ausführen. Jetzt funktioniert es perfekt.


1
Vergessen Sie nicht, den FTP-Server neu zu starten: sudo service vsftpd
Nahid

7

Habe meine Antwort bekommen:

Da die WWW-Daten der Benutzer sind, der für den Webserver verantwortlich ist, und Ihr normaler Benutzer für den FTP-Server verantwortlich ist, müssen Sie zuerst beide Mitglieder derselben Gruppe festlegen: die Gruppe WWW-Daten.

Benutzerdefinierten Benutzer erstellen:

useradd –d /var/www/asasd.com -g www-data -m yourusername Auf diese Weise ist das Ausgangsverzeichnis /var/www/asasd.com und Ihr Benutzer befindet sich in der WWW-Datengruppe .

Ändern Sie anschließend den Benutzerpass, indem Sie Folgendes eingeben passwd .

Dann müssen Sie einen public_html- Ordner in Ihrem Benutzernamen erstellen - , da der FTP-Server nicht in den Stamm schreiben kann. Sie müssen einen Unterordner erstellen.

Entfernen Sie die Schreibrechte Ihres Benutzernamens Ordner chmod a-w /var/www/asasd.com

Wenden chmod -R 775 /var/www/asasd.com/public_html Sie dann neue Berechtigungen für den Unterordner an: (Beachten Sie, dass Sie 775 chmod verwenden müssen, da Sie Gruppenschreibberechtigungen und keine Benutzerschreibberechtigungen benötigen, damit die gesamte Gruppe (FTP- und WWW-Daten) schreiben kann.) Ordner für die WWW-Daten chown -R www-data:www-data /var/www/asasd.com/public_html

Auf diese Weise müssen Sie in der Lage sein, FTP zu verwenden und einen Webserver zu betreiben.

Viel Glück!

Witzig, diese Informationen sind so schwer zu finden. Teilen die Leute kein Wissen mehr?


"Sie müssen zuerst beide Mitglieder derselben Gruppe machen: die Gruppe www-data" Wie kann ich meinen FTP-Benutzer in die Gruppe www-data eintragen?
Black

Hat perfekt funktioniert. Thanks @lucasmx
Enrique Becerra

0

Ich hatte auch ein Problem, da die Dateiberechtigung geändert wird, wenn ich eine Datei über mein FTP hochlade. Dies ist mit einem Zeilenwechsel in my behobenvsftpd.conf

local_umask=val(like 022,007,etc.,)


Möchtest du das verbessern und ein bisschen öffnen? Warum ist das besser als die bisherigen Alternativen und was bedeutet es eigentlich tun , da diese Art von Syntax nicht im Handbuch Seite überhaupt beschrieben: local_umaskhat einziger Wert sein, und es muss 0als Präfix für Oktalwert.
Esa Jokinen

-4

Sie müssen den Besitz dieser Datei ändern:

chown root:root /home/username
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.