Wie vergebe ich welchen chmod?

1. Warum ist eine Rechtevergabe überhaupt nötig?
2.
Aufbau auf Grundlage von WS-FTP
2.1.
Bedeutung von Zahlen & Buchstaben
2.2.
Vergabe mit Befehl
2.3.
Rekursives löschen von Verzeichnissen
3.
Vergabe mit dem FTP-Client FileZilla
4.
Die billige Variante ... Windows-Explorer

 

1. Warum ist eine Rechtevergabe überhaupt nötig?
Aus Sicherheitsgründen werden Dateien nach dem Upload mit dem Chmod 644 gespeichert. Mit dieser Berechtigung kann man die Datei nicht ausführen, d.h. Scripte des Typs Perl oder CGI winken einem mit einem Error 500 zu (PHP geht). Man muss die Rechte auf 755 ändern. Es empfiehlt sich im Script dieses Typs unbedingt noch eine Fehlerausgabe einzubauen. Unter die Zeile #!/usr/bin/perl (kein Standard!) muss diese Zeile use CGI::Carp qw(fatalsToBrowser); eingefügt werden. Scripte bitte immer im ASCII-Modus hochladen! Auch das Schreibrecht in Ordnern und Dateien ist standardmäßig deaktiviert (Chmod 777).



2. Aufbau auf Grundlage von WS-FTP (veraltet)

Im ersten Beispiel wird mit dem schon etwas älteren FTP-Programm WS_FTP LE 5.08 gearbeitet! Dieses Programm könnt ihr hier downloaden. Bei der Installation müsst ihr Location angeben (at home), damit ihr es als Freeware nutzen könnt. Auf keinen Fall was bei Purpose ankreuzen. Ich empfehle das weiter unten aufgeführte Programm FileZilla. - Screenshot

2.1. Bedeutung von Zahlen & Buchstaben

> Datei markieren, Rechtsklick und im Kontextmenü chmod (Unix) wählen. Nun seht ihr das folgende Bild.

Die chmod Oberfläche:

Owner = Eigentümer (darf)
Group = Gruppe (darf)
Other = Andere (darf)
Read = Lesen
Write = Schreiben
Executable = Ausführen


Zahlenkennung (chmod):

Owner/Group/Other
Zahl
r
w
x
7
r
w
-
6
r
-
x
5
r
-
-
4
-
w
x
3
-
w
-
2
-
-
x
1
-
-
-
0

r = lesen
w = schreiben
x = ausführen


Beispiele:
Wenn man rechts auf den Button DirInfo klickt öffnet sich eine Dateiliste mit der Chmod-Kennung.
Owner-Group-Other
-rwxr-xr-x = chmod 755 auf eine Datei
d
rwxr-xr-x = chmod 755 auf einen Ordner (Directory)

 

> Hier die Kennung bildlich gesehen.

0 -->

1 -->

2 -->

3 -->

4 -->

5 -->

6 -->

7 -->

Für jeden Typ (Owner/Group/Other) wird eine Zahl definiert. Ein chmod besteht immer aus 3 Zahlen. Es muss also jeder Typenreihe eine Kombination zugeordnet werden. Der chmod 755 würde so aussehen:


2.2. Vergabe mit Befehl

> Chmod über einen Befehl setzen

Zuerst muss man in den Ordner wechseln in dem sich die Datei oder der Ordner befindet. Jetzt Rechtsklick und aus dem Kontextmenü FTP Commands > und SITE auswählen. Im folgenden Fenster kann man den Befehl eingeben. In unserem Beispiel wird der Datei test.cgi der chmod 755 zugewiesen.

Wenn man komplette FTP-Befehle eingeben möchte kann man aus dem Kontextmenü auch QUOTE an Stelle von SITE auswählen. In diesem Fall müsste der obere Befehl SITE chmod 755 test.cgi heißen. Hier lassen sich dann auch die FTP-Befehle benutzen, welche nicht im FTP-Commands Menü als Alias aufgelistet sind (z.B.: NOOP, QUIT oder zum löschen von Ordnern RMD).


2.3. Rekursives löschen von Verzeichnissen

> Ich kann einen Ordner nicht löschen!

Falls man folgende Meldung erhält...:

550 Remove directory Operation failed.
! Delete of Testordner failed.

...muss das nicht am Chmod liegen!

Um einen Ordner zu löschen muss er leer sein. Einige Server zeigen allerdings nicht eventuell vorhandene versteckte Dateien an (z.B. .htaccess). D.h. der Ordner sieht theoretisch leer aus, aber er ist es praktisch nicht. In unserem Beispielprogramm findet sich auf der rechten Seite unter dem Button MkDir ein Eingabefeld. Dort schreibt man -LA rein und bestätigt es mit der ENTER-Taste. Im Normalfall müsste man jetzt alle Dateien sehen. Ein zweiter Grund sind die Besitzrechte des Ordners. Wenn nämlich jemand Anderes den Ordner erstellt hat dann hat standardmäßig nur dieser Nutzer Löschrecht. Systemorder gehören bspw. dem Nutzer root und da kann der FTP-User nicht ran. Außer der Nutzer root erlaubt anderen Nutzern das Löschen. Der Scriptaufruf kann u.a. durch den User wwwuser geschehen.



3. Vergabe mit dem FTP-Client FileZilla

Der obere Teil wurde von mir im Jahre 2001 erstellt. Inzwischen habe ich ein für mich viel besseres FTP-Programm gefunden namens FileZilla. Man kann direkt den chmod eingeben, Ordner werden immer komplett angezeigt und das Löschen wird auch auf Unterordner bzw. Ordner mit Inhalt angewendet. Weiterhin hat man das lästige Problem des Timeouts nicht. (2007) In der aktuellen Version 3 gibt es sogar eine rekursive Suchfunktion und einen Verzeichnisvergleich (hat seine Eier...)! Genial ist auch der synchrone Verzeichniswechsel und die Lesezeichenfunktion. Sehr gut auch für Systemwechsler, weil es für Windows, Mac und Linux verfügbar ist.

FileZilla - Seite (Freeware)
Offizieller Download (die dt. Seite ist manchmal veraltet)
Portable Version (von Caschys Blog ohne Installation)

> Datei markieren, Rechtsklick und im Kontextmenü Dateiattribute oder Dateiberechtigungen wählen. Nun seht ihr das folgende Bild.

Zum Anzeigen aller Dateien wählt man in der Menüleiste: Ansicht --> Versteckte Dateien anzeigen.



4. Die billige Variante ... Windows-Explorer

START --> Ausführen oder Windows-Taste + R

Befehl öffnen:
explorer ftp://BENUTZERNAME@HOSTNAME
(z.B.: explorer ftp://mustermann@meinehp.de)

Nach dem Ausführen des Befehls noch das Kennwort eingeben und anmelden!

Jetzt den üblichen Rechtsklick auf die Datei oder den Ordner tätigen und ganz unten die Eigenschaften auswählen. Folgend ein Bild mit den Rechten 755 für eine Perl-Datei unter Windows XP SP3.

Leider kann man mit dem Windows-Explorer nicht in den ASCII-Transfer-Modus wechseln (für Scripte). Mit dieser Varianten wollte ich zeigen, dass es auch mit Boardmitteln möglich ist einen Chmod zu vergeben.

Bei MAC OSX kann man sich zwar mit dem Finder via FTP einwählen, aber das ist nur read-only :-(.
Erwähnenswert wäre noch ein FTP-Client in Form einer Firefox-Erweiterung namens
FireFTP.