Seite 1 von 1

Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 08.01.2010 10:34
von Bruder Torgen
Hallo,

ich oute mich zuerst einmal als Windows Administrator, so dass einige evtl. mein Verständnisproblem besser verstehen können.

Ich bin spasseshalber Admin eines phpbb3 Boards. Unter Nutzung der Version 3.05 waren wir plötzlich einem Massiven Viren Attack ausgesetzt (ohne zu wissen, ob es nun an diesem Board lag). Dateien wie index.php, diverse .html Dateien wurden mit recht unschönem Inhalt manipuliert, was dazu führte, dass wir das gesamte Board löschen mussten. Wie es dazu kommen konnte, haben wir leider nie erfahren.

Um Sicherheit hatten wir uns bis dahin keinerlei Gedanken gemacht .. danach schon :wink:

Ich habe nun die chmod Artikel und Empfehlungen von phpbb gelesen und mich gefragt, warum die so offen sein sollen und habe eigenmächtig alle Dateien mit dem Wert 444 versehen, so dass maximal Lese Berechtigungen auf Dateien existieren. Dass es dabei zu Fehlfunktionen kommen kann, ist eingeplant. Hauptsache ist, KEINER manipuliert mehr Dateien.

Ich empfand das als recht sicher, nun habe ich gestern die Avatar Upload Funktionalität freigeschaltet, weil ich leider keine Möglichkeit im Board gefunden habe, die es mir erlaubt, Avatar Funktionen so einzustellen, dass der Admin diese Avatare einbindet und der User nichts machen darf (ich hätte mir diese Bilder sonst schicken lassen, gescanned und eingebunden).

Auf meinen Testavatar habe ich nach Upload chmod 400 (oder 444) gesetzt. Dann habe ich im Board diesen Avatar gelöscht.

Und genau deswegen schreibe ich diesen Post (stelle diese Frage). Das Löschen funktionierte einwandfrei. Wie bitte kann es sein, dass das Board mir die Datei löscht, wenn keinerlei Schreibrechte auf der Datei sind (evtl. mir nicht bekannte Verzeichnisrechtsfunktionalitäten). Da ich mich mit Unix / Dateisystemen nicht auskenne, frage ich hier nach Hilfe, denn wenn es ohne Probleme geht, dass Dateien ohne Berechtigungen gelöscht werden in einem Ordner, der natürlich Schreibzugriff hat, dann kann ja eigtl jeder Dateien dort auslesen, löschen und danach manipuliert einpflegen.

Wie kann ich das umgehen und vor allem: wieso konnte diese Datei gelöscht werden ?

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 08.01.2010 10:41
von Mahony
Hallo
Unter Windows gibt es kein CHMOD. Wie du die Rechte einstellst? --> Schau mal hier http://www.cybton.com/tutorials_show,tut,681.html oder hier (bebildert ) http://www.pa-s.de/php/tutorial-CHMOD-R ... ben-13.php


Grüße: Mahony

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 08.01.2010 11:58
von Bruder Torgen
Oh danke für Deine schnelle Antwort, aber es war leider überhaupt nicht meine Absicht, auf Windows Rechnern Rechte zu erteilen. Das Board wird schon auf einem Unix Server betrieben (ansonsten bräuchte ich diese Frage nicht zu stellen, da ich mich in der Windows Welt auskenne).

Meine Frage ist, wie es sein kann (woran es liegt), dass bei der o.g. Rechtevergabe von 'Owner nur lesen' (400) das Board eine Datei mit eben dieser Berechtigung löschen kann. Das klingt doch alles andere als logisch (und stellt m.M.n. eine ziemliche Gefahr dar).

Edit:
ich fand mal dieses:
"Das W-Recht gestattet es mir das Inhaltsverzeichnis zu verändern. Somit kann ich den Namen einer Datei aus dem Verzeichnis löschen. Das ist auch genau der Vorgang, den man mit rm vornimmt. Mit dem Namen der Datei löscht man die Datei an sich. Wer eine Datei löschen darf, ist also nicht davon abhängig, wer Schreibrecht an der Datei hat, sondern wer Schreibrecht an dem Verzeichnis hat.
Das W-Recht brauche ich natürlich auch zum Anlegen und Umbenennen von Dateien."

Quelle

Bedeutet das folgendes:
1. im root der Forum Installation lese ich die Index.php aus
2. ich darf die Datei unabhängig von ihrem Datei-Recht löschen
3. Ich modifiziere sie um was ich will (index.php bei phpbb3 Foren sind ja nicht gerade sehr unterschiedlich)
4. ich kann wegen den Schreibrechten diese modifizierte Datei wieder aufspielen.

Da kann's doch nicht sein, oder. Wo ist da mein Denkfehler ?

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 08.01.2010 12:51
von Bierhasser
Du hast aber bestimmt schreibrechte für den Ordner? Somit darfst du auch Dateien die Dir gehören löschen. Egal ob die nur Leserechte haben.

Setze den Ordner nach dem Upload auf chmod 555 und du kannst nicht mehr löschen.

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 08.01.2010 13:30
von Bruder Torgen
Hallo Bierhasser (Dein Name passt nicht zu meinem pers. Trink - Geschmack :wink: ),

das werde ich wohl umsetzen. Ich wusste einfach nicht, dass Schreibrechte auf einem Verzeichnis die Dateirechte ignoriert (und da schimpft man auf Windows ...)

Da der Avatar Ordner ja Schreibrechte hat und mit 777 empfohlen wird, muss ich gleich mal eien andere Frage stellen:
kann der so geschützt werden, dass nur Dateiformate wie *.jpg, *.png oder *.gif dort niedergelegt oder gelesen werden dürfen (evtl. .htaccess ?)

Ich habe einfach keine Lust, wieder Stunden damit zu verbringen, Viren zu bekämpfen ....

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 09.01.2010 02:02
von gn#36
Die Dateirechte werden nicht ignoriert. Aber wenn du die Rechte ändern kannst und das Forum mit deinen Rechten läuft, dann kann i.a. auch das Forum die Rechte ändern, es kann sein dass es das in manchen Fällen auch tut. Nicht auf allen Servern läuft das Forum allerdings auch mit deinen Rechten. Das hat dann aber wieder den Nachteil dass du andersherum Dateien die das Forum erstellt wenn die Rechte nicht stimmen auch nicht löschen kannst (weil du dann auf die Dateien des Forums nämlich keine ausreichenden Zugriffsrechte besitzt).

Wenn du in Windows einen Löschbefehl gibst und eine Datei schreibgeschützt ist, dann fragt das Programm ja auch lediglich noch ein weiteres mal nach ob es Löschen soll, letztlich ist das in Linux ähnlich. Wenn du eine Datei löschen darfst kannst du dich durch das entfernen des Rechts daran erinnern dass du das vermeiden wolltest. Du kannst aber keine Datei in Stein meißeln und dir selbst damit das Recht nehmen.

Ich füge dann der Linkliste auch mal einen Eintrag hinzu: KB:chmod

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 14.01.2010 09:25
von Bruder Torgen
Hallo gn#36,

leider weiss ich nicht, unter welchem Benutzer das Board läuft und was für Rechte der hat. Ich weiss aber, dass ich z.B. da Root Directory des Boards von den Berechtigungen nicht verändern kann (via chmod) (somit entfällt auch die Möglichkeit, Schreibrechte vom Root Verzeichnis zu entfernen).

Dass CHMOD so arbeitet wie Windows mit Dateiattributen, wusste ich nicht, ich dachte, es ginge dabei um Berechtigungen. Wenn ich in Windows einer Datei die Löschrechte entziehe (und dem übergeordnetem Ordner die Berechtigung Unterordner und Dateien löschen nehme), kann ich diese Datei nicht löschen (dafür muss ich erst die Rechte wieder vergeben).

Wie auch immer, ich befürchte halt nur, dass jmd - bei Schreib- und Leserechten auf einem Ordner - diese Datei liest, modifiziert und wieder in den Ordner packt. Aber da scheinbar kein anderer diese Sorgen hat, mache ich mir da wohl irgendwie falsche bzw. unnötige Gedanken :)

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 14.01.2010 09:45
von gn#36
Nun ein anderer Benutzer der auf deine Verzeichnisse zugreifen kann sollte das nicht können wenn er nicht root ist, zumindest dann nicht wenn du 755, 755, 555, 444 oder ähnliches als Rechte vergeben hast.

Damit du das nicht falsch verstehst: chmod arbeitet nicht wie mit Attributen. Wenn du ein Recht nicht hast, dann hast du es auch nicht. Aber du kannst es dir geben wenn du Besitzer bist, in sofern ist das genau das gleiche wie mit Windows. Die Linux Programme sind nur teils komfortabler und ändern die Berechtigungen auf Nachfrage wenn es denn notwendig ist und der Ausführende die Rechte erlangen kann (wenn ich also was löschen will und das Schreibrecht zur Sicherheit entfernt hatte dann wird nicht einfach gelöscht sondern erst nachgefragt ob ich wirklich löschen will, die Rechte zurückholen macht das Programm aber selber). Wenn du per FTP zugreifst musst du dir vermutlich die Rechte auch erst wieder explizit geben (aber auch hier kann es Ausnahmen geben, kommt halt immer darauf an wie der FTP Client realisiert ist).

Naja wie auch immer, grob zusammengefasst: Falls der Apache unter anderem Namen läuft sollten dich die eingeschränkten Dateirechte in jedem Fall vor Manipulationen schützen. Falls nicht muss ein Hacker in seinem ausgeführten Skript zumindest einen CHMOD Befehl einbauen um die Dateien ändern zu können, in dem Fall ist echter Manipulationsschutz aber (unter keinem Betriebssystem) möglich.

Wenn ein Programm mit deinen Rechten ausgeführt wird dann kann es auch unter Windows alle deine Dateien/alle Dateien auf die du direkt Zugriff hast manipulieren. Nur wenn es Systemdateien oder Dateien anderer Benutzer manipulieren will braucht es mehr Rechte, genau so ist das auch unter Linux. Die konkrete Vergabe der Rechte ist in dem Fall eigentlich der einzige Unterschied (auch wenn man mit den Windows ACLs natürlich ein wenig flexibler Zugänge für mehrere konkrete Personen realisieren kann, für Einzelzugänge macht es keinen Unterschied).

Re: Löschung von Dateien ohne Rechte - Erklärung von Berechtigun

Verfasst: 16.01.2010 13:39
von Bruder Torgen
Ok, und danke, das verstehe ich schon besser :)

Da ich leider nicht weiss, unter welchem Konto der Apache läuft und ich merke, dass ich in bestimmten Verzeichnisebenen keine Berechtigungen vergeben kann (wird sofort wieder zurückgesetzt).

Via FTP (FileZilla) muss ich mir die Rechte erst geben (finde ich gut), bevor ich löschen / drüberkopieren darf.

Nun weiss ich zumindest, dass ich beim Apache User ansetzen muss (was ich nicht kann), damit bin ich recht zufrieden.

Danke für all Eure Antworten :)