tutorials.de Buch-Aktion 05/2012
  • Was ist CHMOD 777 ? (Tutorial)

    Der Begriff CHMOD (übrigens ein UNIX-Befehl) dient dazu, die Zugriffsrechte einer Datei zu verändern.

    Bevor wir diese Ändern, sollten wir uns mal kurz anschauen, was die Zugriffsrechte überhaupt sind:

    Unter Unix (genauso unter Linux) bekommt jede Datei verschiedene "Rechte" zugewiesen. Bei diesen Rechten wird zum Einen zwischen drei verschiedenen Benutzergruppen, und zum Anderen zwischen drei verschiednen Rechten unterschieden.

    Die Benutzergruppen sind:
    - "Owner" - der Eigentümer der Datei (also der, der diese Datei erstellt hat)
    - "Group" - die Gruppe, in der sich der Eigentümer befindet (z.B. Administratoren)
    - "Public" - alle

    Die Rechte sind:
    - read (lesen oder auch "4")
    - write (schreiben oder auch "2")
    - execute (ausführen oder auch "1")

    Was bringt uns das? Ganz einfach: man kann so z.B. nur Administratoren erlauben, den Befehl "FORMAT" auszuführen, oder eine System-Konfigurationsdatei zu verändern (schreiben)

    Die meisten Webserver (auf denen auch eure Homepages liegen) sind UNIX-Systeme, und dort werden diese Rechte genauso vergeben.

    Will man also eine Textdatei, die auf dem Server liegt auslesen, dann muss das Recht "read" für das Script, welches diese Datei auslesen will, gesetzt sein. Und zwar: Wenn das Script diese Datei erstellt hat, dann für den "Owner", sonst für "Public".
    Das gleiche gilt natürlich für "write", wenn man die Datei verändern (also schreiben) will, und für "execute", wenn es sich um eine Ausführbare Datei handelt.

    Bei den Rechten oben habe ich auch Zahlen mit angegeben. Diese stehen für die Wertigkeit, der einzelnen Rechte. Sollen mehrere Rechte gesetzt werden, dann müssen diese Wertigkeiten einfach addiert werden.

    Mal ein Beispiel, was das Ganze verdeutlichen soll:

    755 heißt demnach:
    - read, write und execute für "Owner" (erste Ziffer)
    - read und execute für "Group" (zweite Ziffer)
    - read und execute für "Public" (dritte Ziffer)

    Wie werden nun, diese Rechte beeinflusst? Nach dem Hochladen einer Datei hat diese in der Regel "644". Verzeichnisse in der Regel "755". Handelt es sich bei einer hochgeladenen Datei um eine Textdatei, die man von einem Script beschreiben will, dann muss man die Rechte auf mindestens "666" ändern.

    Hinweise:
    - PHP- (und andere) Scripte sind keine Ausführbaren Dateien! Es sind nur Scripte, die dann von einer PHP.EXE (o.ä.) ausgeführt werden. "execute" muss also nicht gesetzt werden!
    - die Rechte gelten auch für Verzeichnisse. Ist bei einem Verzeichnis "read" nicht für "Public" erlaubt, kann man das Verzeichnis und alle Dateien in dem Verzeichnis nicht lesen. d.h. auch der Browser nicht!
    - sind in einem Verzeichnis Scripte abgelegt, dann muss das Verzeichnis "execute"-Rechte für alle drei Benutzergruppen besitzen.

    Hat man das Problem, daß ein Script einen Fehler meldet wie z.B. "cannot open file", dann bekommt man oftmals zu hören "setz mal 777 drauf". Das ist sicher eine einfache Methode, da man damit dieser Datei alle Rechte gibt, die sie überhaupt haben kann. Es ist aber natürlich nicht die sicherste Methode. Ein Script auf einem anderen Webserver könnte diese Datei dann auch beschreiben, oder ausführen.

    In den meisten FTP-Programmen kann man diese Rechte verändern. Einfach mal nen Rechtsklick auf die Datei machen, und da steht dann meistens sowas wie "Eigenschaften (CHMOD)" oder so.

    Ich hoffe, das bringt etwas Licht ins Dunkel

    (Dieses Tutorial wurde uns freundlicherweise von Dunsti zur Verfügung gestellt)

    Und hier noch die Anmerkungen von unserem Mitglied Thomas Kuse:

    ja genau dunsti hat 100%ig recht!

    hier nochmal ne möglichkeit für chmod ohne ziffern:

    also es gibt 3 verschiedene user-arten die für chmod interessant sind. Eigentümer (user), Gruppen (group) und alle anderen (others)

    man kann jetzt den chmod auch so ausführen (Beispiele):
    chmod o+r datei (gruppe other darf lesen9
    chmod u-w datei (gruppe user darf nicht schreiben)
    chmod ugo+rwx datei (alle dürfen alles ^= chmod 777)
    chmod ugo=r (alle dürfen lesen, sonst nichts ^= lösche alle rechte ausser)

    das war jetzt nur als erweiterung von dunstis ausführungen. da die meisten sich ja nicht mit telnet oder sonstigem auskennen, und dann doch eher cuteftp, oder andere populäre ftp-clients benutzen, kann man dort meistens eh die rechte anklicken!


    ---
    anmerkung zu dunstis ausführungen:
    Ein Script auf einem anderen Webserver könnte diese Datei dann auch beschreiben, oder ausführen.
    da braucht ihr nicht so sehr angst vor haben, so einfach geht das nicht. um irgendwelche dateien verändern zu können muss man zu einen der gruppen gehören. man gehört aber erst zu den gruppen, wenn man per ftp auf dem server zugriff hat (anonymus zaehlt dazu).
    per http wird der schreib-zugriff gesperrt!
    chmod 777 muss aber trotzdem nicht sein
    ---
    ####################edited@17:43######################

    auf dunstis anraten hin, möchte ich noch einige, vielleicht nicht uninteressante aspekte von chmod und der rechteverwaltung von unix-linux oder ähnlichen dateisystemen eingehen.

    Die Zugriffsrechte auf Verzeichnisse
    Die Zugriffsrechte auf Verzeichnisse stellen eine Spezialität dar. Die Zugriffsrechte entsprechen denen normaler Dateien, jedoch besitzen die Zugriffsrechte eine etwas andere bedeutung:
    • Um ein verzeichnis ansehen und durchsuchen zu können, benötigt man nicht nur das Leserecht für dieses verzeichnis, sondern auch das ausführungsrecht, d.h. um ein verzeichnis öffnen zu können, muss das x-bit gesetzt sein und um den inhalt zu betrachten, muss das r-bit gesetzt sein. für den zugriff auf eine datei im betreffenden verzeichnis reicht das x-bit
    • ist das w-bit eines verzeichnisses für eine benutzerklasse gesetzt, so kann jedes mitglied dieser klasse eigene dateien in dieses verzeichnis eintragen. eigentümer dieser neuen dateien ist der benutzer, der die datei anlegt. es ist sehr gefährlich diese schreibberechtigung zu vergeben, da jeder, der das schreibrecht auf dem verzeichnis besitzt, auch dateien aus dem verzeichnis löschen kann, und zwar unabhängig davon, ob er irgendwelche zugriffsrechte auf diese dateien besitzt oder nicht!

    für advanced user - es gibt noch einen weiteren netten befehl:
    umask (zugriffsrechte voreinstellen)
    bei jeder erstellung einer datei werden automatisch vom system voreingestellte zugriffsrechte gesetzt.
    aber aufpassen: die bits die in der maske bestimmt sind, werden beim anlegen einer datei gerade nicht gesetzt!!
    beispiel: umask 077 (der eigentümer hat volle rechte, der rest nicht)

    • die benutzung des befehles hängt vom jeweilligen system des ftp-servers ab!
    • die anzeige über einen webbrowser per http-schnittstelle ist ein wenig differenzierter, da der web-server eigene lese-rechte für die benutzung der dateien mitsich bringt!
     


    Kommentare Kommentar schreiben

    Klicke hier, um dich anzumelden

    Wie heißt die Bundeskanzlerin der BRD mit Nachnamen? Angela...