it-swarm.com.de

Können hochgeladene Dateien Apache-Berechtigungen überschreiben?

Ich unterrichte Liberal Arts Majors in Webentwicklungskursen, und der Webserver (Ubuntu Apache) befindet sich in meinem Büro. Zu Beginn jedes Semesters erstelle ich für jeden meiner Studenten ein public_html-Verzeichnis und setze die Berechtigungen rekursiv, damit die Dateien korrekt bereitgestellt werden.

Von Zeit zu Zeit meldet ein Schüler Berechtigungsprobleme mit einer von ihm hochgeladenen Datei. Es ist einfach genug, dies durch Ändern der Berechtigungen in Filezilla zu beheben, aber ich habe mich immer über die scheinbar inkonsistente Natur dieses Problems gewundert.

Mögliche Erklärung 1. Ich habe beim Erstellen des Kontos Fehler gemacht und mich nicht wirklich daran erinnert, die Berechtigungen rekursiv festzulegen.

Mögliche Erklärung 2. An die hochgeladene Datei waren bereits bestimmte Berechtigungen angehängt, die die auf dem Server festgelegten Berechtigungen überschreiben.

Basierend auf allem, was ich über Webserver zu wissen glaube, scheint die erste Option sehr viel wahrscheinlicher zu sein. Ist mögliche Erklärung 2 überhaupt theoretisch möglich?

Vielen Dank!

2
Aaron Delwiche

"Option 1."

Schreiben Sie ein Skript. So etwas wie

create_account <student name>

wird gut machen. Erstellen Sie im Skript das Verzeichnis (die Verzeichnisse) und vergewissern Sie sich, dass die Berechtigungen richtig sind. Mehr oder weniger so etwas:

mkdir -p ~$1/public_html/{js,css,images}
chown -R $1:www-data ~$1/public_html

Sie können auch gleichzeitig das Studentenkonto erstellen. (user_add)

Beachten Sie, dass in meinem Beispiel davon ausgegangen wird, dass <student name> ein Wort ist (kein Leerzeichen oder Sonderzeichen), was normalerweise bei Unix-Benutzern der Fall ist.

"Option 2"

Sie erwähnen Filezilla, ein FTP-Tool.

Die meisten FTP-Tools verfügen über die Anweisungen CHOWN und CHMOD, mit denen sie den Besitz und die Berechtigungen ändern können.

Der CHOWN schlägt fehl, wenn der Benutzer keine hohen Berechtigungen auf dem Zielserver hat.

Der CHMOD-Befehl ist möglicherweise erfolgreich und entfernt beispielsweise Schreibberechtigungen.

In beiden Fällen kann der Benutzer/Eigentümer der Datei die Berechtigungen mit einem anderen CHMOD ändern. Ich weiß nicht, ob Filezilla solche unterstützt, aber es könnte sein. Ich weiß auch nicht, ob CHMOD automatisch angewendet wird, insbesondere wenn die Datei von einem MS-Windows-System stammt.

Um diese "Option" besser zu beantworten (es ist wirklich ein "Fall"), müssten Sie herausfinden, ob Sie das Problem reproduzieren können, nachdem Sie Ihr perfektes Skript ausgeführt haben. Korrigieren Sie zuerst das Skript und versuchen Sie es dann erneut.

Randnotizen

FTP gilt als nicht sicher, SSH ist viel sicherer. Es gibt SFTP, das über SSH funktioniert, und das sollten Sie zumindest verwenden. Sie geben nicht an, also kann ich nicht sagen, ob Sie das falsche Protokoll verwenden oder nicht.

1
Alexis Wilke