• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Linux Datei-Rechte

Hallo,

ich habe folgendes Problem:Ich habe zwei verschiedene Fileserver, auf denen es zwar die identischen User und Gruppen gibt, aber mit jeweils anderen ID´s.
Daher habe ich mir überlegt, wie ich am besten die Daten von dem ersten auf den zweiten Server kopieren kann, ohne die Rechte (User:Group) zu verlieren.
Gibt es vllt eine Art Script oder hilfreichen Konsolenbefehl, welches den Order+Subordner+Files auslesen kann und mir in einer Datei diese Informationen abspeichert mit der ich dann auf dem anderen Server, wenn der Ordner kopiert ist, wieder herstellen kann.
Da auf beiden die User und Gruppen bekannt sind, müsste es der reine Name der User/Gruppen klappen.
Mit ACL´s klappt sowas, jedoch geht es bei mir um reine Unixbereichtigungen ohne ACL´s.

Freue mich über jeden hilfreichen Tipp und bedanke mich jetzt schon fürs Lesen ;)
 
Hallo sawo,

sawo schrieb:
auf denen es zwar die identischen User und Gruppen gibt, aber mit jeweils anderen ID´s.
Daher habe ich mir überlegt, wie ich am besten die Daten von dem ersten auf den zweiten Server kopieren kann, ohne die Rechte (User:Group) zu verlieren.
Code:
man rsync

sawo schrieb:
Gibt es vllt eine Art Script oder hilfreichen Konsolenbefehl, welches den Order+Subordner+Files auslesen kann und mir in einer Datei diese Informationen abspeichert
Du meinst so eine Mischung aus locate & find oder so?
Etwa so:
Code:
#!/bin/bash
echo "Welche Dateien sollen gelistet werden?"
read files
find /home/sawo/ -iname "$files" -print0 | xargs -0 -I {} ls -l '{}' > liste.txt

sawo schrieb:
Freue mich über jeden hilfreichen Tipp und bedanke mich jetzt schon fürs Lesen ;)
Rechte setzen:
Code:
chown -Rv sawo:users *
Ich verstehe Dein Anliegen hoffentlich richtig?

Lieben Gruß aus Hessen
 
Ich weiß auch nicht ganz genau, was Du machen willst.
Ich kann nur sagen, ich mußte schonmal ganz neu installieren, weil ich mit einem einzigen chmod-Befehl auf mehrere hundert oder tausend Systemdateien falsche Rechte gesetzt hatte. Das war nicht mehr rückgängig zu machen. Also, Vorsicht bitte.
 
Danke für die Antworten!!!

Ich hoffe ich kann es nun noch ein bisschen deutlicher erklären.

Momentan habe ich einen Samba Server mit verschiedenen Freigaben. Auf diesen Server greifen viele Nutzer zu die unter Unix bekannt sind.
Auf diesem Server sind natürlich viele Dateien/Ordner mit verschiedenen User und Gruppen.
Nun stelle ich meine kompletten Samba Server auf ein anderes ID Backend um.
Dabei ändert sich die USERID und GROUPID Unixseitig, jedoch sind die Namen der User und Namen der Gruppen weiterhin bekannt.

Sieht in etwa so aus:
Vor der Umstellung: User Sawo <-> ID 1000
Nach der Umstellung: User Sawo <-> ID 2031
Das gleiche passiert auch mit den Gruppen!

Deswegen war mein erster Denkansatz, ob es vllt möglich ist vor dieser Umstellung mit einem Befehl die kompletten Informationen der USER:GROUP(Namen nicht ID´S!) der freigegebenen Ordner+SubOrdner+Dateien abzusichern und nach der Umstellung wieder auf die gleichen Stand zu bekommen. Diesen Vorgang gibt es z.B. zum absichern von ACL´s, jedoch nutzen wir die reinen Unix Berechtigungen.

Zum Testen wollte ich Testordner mit Dateien erstmal auf ein anderen Samba Server kopieren und versuchen mit einen kleinen Script oder Befehl die gleichen Dateiberechtigungen herzustellen.
 
So habe etwas brauchbares gefunden:

Code:
find test/ -printf "chmod %m '%p' && chown %u:%g '%p'\n" > file.sh

-Vor Umstellung der ID´s ausführen
-Nach der Umstellung die file.sh ausführen und freuen.
 
Probleme gibt es jedoch weiterhin mit Pfadnamen mit einen ' oder (.
Bei einem Ordner /what's new/ schmeisst er den ' raus und kann den Pfad nicht finden
Bei einer Datei mit (1.0) im Namen gibt er einen unexpexted token.

Weiss jemand wie man es trotzdem auf diesen Pfaden oder Dateien ausführen kann?
 
A

Anonymous

Gast
Hallo sawo,

sawo schrieb:
Probleme gibt es jedoch weiterhin mit Pfadnamen mit einen ' oder (.
Bei einem Ordner /what's new/ schmeisst er den ' raus und kann den Pfad nicht finden
Bei einer Datei mit (1.0) im Namen gibt er einen unexpexted token.

Weiss jemand wie man es trotzdem auf diesen Pfaden oder Dateien ausführen kann?
wenn Du irgend kannst, ändere solche Dateinamen und vermeide sie zukünftig. Verschiedene dieser Sonderzeichen können manchmal als Steuerzeichen fehlinterpretiert werden (wann, ist mir nicht bekannt) und führen nur zu Fehlern. Ziffern und Buchstaben sind geeignet, außerdem als Trenner der _; Leerzeichen verwende besser auch nicht. Vor allem, wenn Du zwischen Linux, Mac und/oder WIN mit solchen Benennungen wechselst, kann's manchmal Theater geben. Ohne solche Zeichen bist Du auf jeden Fall auf der sicheren Seite.

Alte Anwendererfahrung :D

Phoenix
 
Seh' ich wie Phoenix. Wie viele Pfade hast Du denn mit Sonderzeichen? Vielleicht würde es sich lohnen, die auch auf der Ausgangspartition umzubenennen. Danach funktioniert dann auch der bisherige Befehl (vorausgesetzt, das war die einzige Schwierigkeit).
 
Ich habe mir das selbst schon angewöhnt, dass ich die Ordner und Dateien richtig benenne, jedoch fällt das den "Windows Anwendern" so schwer und haben auch keine Ahnung das es Probleme macht.
Problem an der Sache ist ich kann nicht wirklich sagen wie viele solche Ordner ich habe.
Diesen Vorgang der Rechte wiederherstellung muss ich auch mehrere Server mit Samba freigaben machen auf denen sicherlich die wildesten Bennenungsformen existieren,
daher suche ich nach irgendeinen zusatz meines Befehls, um solche irgendwie trotzdem zu verarbeiten.
Oder eine Art Abfrage die ich vorher ausführen kann, um diese "schlecht benannten" Pfade und Dateien lokalisieren kann??
 
Oh je, das habe ich befürchtet.
Da Dateinamen mit Sonderzeichen auch in bash-Skripts selbst Probleme bereiten, würde ich persönlich dann auf Perl (oder Python) ausweichen. Das kann besser damit umgehen, allerdings ist es eine andere Sprache, weiß nicht, wie gut Du sie kennst. Eine Google-Suche bringt allerhand Ansätze:

http://www.google.de/search?q=find+special+characters+in+directory+names+perl&btnG=Suche&hl=de&gbv=1

Offenbar werden diese Sonderzeichen auch von Linux und von Windows anders verarbeitet, bzw. zugelassen. Das könnte auch ein Problem sein.
Ohne das alles an Deinen Rechnern zu testen, kann ich Dir leider nicht viel weiterhelfen.
Ich kenne auch kein fertiges Programm, das die typischen Sonderzeichen in Dateinamen findet. Vielleicht jemand anders?
 
A

Anonymous

Gast
abgdf schrieb:
Ich kenne auch kein fertiges Programm, das die typischen Sonderzeichen in Dateinamen findet.
Es sind nicht die typischen Problem-Sonderzeichen, sondern immer das unerwartete was Probleme macht.
und das es diesbezüglich nichts allgemein-gültig-universelles gibt, haben wir hier im Forum in den letzen 10 Jahren schon an 100 ähnlichen Baustellen dieser Art gesehen.

In der oben vorgestellten Methode gibts die Probleme mit '
Warum (1.0) hier Probleme machen sollte, ist mir ein Rätsel :???: das sollte eigentlich gehen.

Das Script mit " anstatt ' erstellt, würde die Probleme mit ' beseitigen, ergäbe aber Probleme mit " und $
Was in beiden Fällen zu Problemen führt ist wahrscheinlich \
In den Scripten allgemein werden Dateinamen mit einem Zeilensprung im Namen das tötliche Ende des Scripts bedeuten.
Weitere Probleme mit dieser Methode über ein solches oder ähnliches Script sind bei unterschiedlichen Zeichensätzen auf neuem und altem Rechner vorprogrammiert. Auch nicht druckbare Sonderzeichen oder auch ein \r oder \b im Dateinamen. Alles in Allem, sollte da durchaus einiges zusammenkommen was zwar im Dateinamen sein könnte, aber in jedem Script zum Problem und oftmals sogar zum Killer wird.

Gute Idee wäre auf jedenfalls das Script (bzw alles was darin nicht funktioniert) zu loggen, damit man das hinterher manuell erledigen kann.

Das währen hauptsächlich also schon mal die Sonderzeichen ' oder " $ \ \n die man in dem Script vorher mal in den Dateinamen suchen sollte. Diese Zeilen dann entsprechend manuell im Script anpassen und dann sollte es in aller Regel auch schon gehen. Was jetzt noch kommen könnte ist nicht mehr wirklich vorherzusagen.

Ausweg wäre zb bei find mit NULL-terminierten Argumenten und xargs zu arbeiten, was allerdings wohl nicht besonders gut über ein Script geht, bzw ein Script ergäbe, dass niemand manuell überprüfen kann, weil nicht wirklich lesbar.

Andere Änsatze :
zB durch erstellen einer ALTE_UID->NEUE_ID und ALTE-GID->NEUE_GID und einer Schleife mit find und chown das ganze dann umsetzen sollte, wird mit einiger Sicherheit genau in dem Moment scheitern wenn sich die neuen mit den alten ID Bereichen überschneiden.

Backupexperten könnten auf die Idee kommen das Ganze schon beim Umkopieren umzusetzen, sollte zB mit tar oder cpio und einem Rattenschwanz von Optionen und für jeden User einzeln an das Archiv angehängte Dateien zumindestens für relativ wenige User schnell zu erledigen sein. Ein Backupprogramm das man eine ganze Tabelle mit Alt->Neu-UID mitgeben könnte, fällt mir im Moment nicht ein, sollte es aber wahrscheinlich auch geben.
Das gleiche gänge zB auch mit einem Script das über scp oder ahnlichen kopiert, jeder User meldet sich im Script am neuen Rechner mit seinem neuen Account an und kopiert seine eigenen Dateien dorthin und schreibt so automatisch mit der neuen ID seine Dateien. Solche Methoden werden allerdings mit einfachen Standardprogrammen zum Problem wenn noch ACL oder SEL oder was noch so alles erfunden wurde auch noch mit rüber auf den neuen Server soll.

Also Möglichkeiten gibt es genauso viele wie es Probleme gibt. ( jedenfalls fast, nach Murphys Comqutergeset⣯e gibt es immer genau ein Problem mehr, und zwar genau das Nächste das man bei einer solchen Aktion vor sich hat ;) )

robi
 
Danke für die Antworten!!!

Das Ganze ist echt ziemlich blöde ...
Die ID´s werden sich nach der Umstellung nicht überschneiden, jedoch wird nach der Umstellung auf das neue Mapping das alte gelöscht.
Mit python kenn ich mich sogut wie gar nicht aus daher bräuchte ich da jemand der mir das Script schreiben könnte.
Im übrigen würde mir schon ein chown der ganzen Dateien ausreichen sodas chmod rausfliegt :).

Im Grunde bräuchte ich Script was folgendes tut:

Code:
find test/ -printf "chown %u:%g '%p'\n" > file.sh

jedoch ohne Pfadprobleme und irgendwelche Syntax sachen.

Es wäre auch möglich das alte Mapping zu sichern, um somit nach der Umstellung eine Verbindung von ID zu Unixnamen herzustellen, jedoch müsste dann ein Script jede Datei die Inhaber ID und die Gruppen ID aus der Datei auslesen und die Datei erneut mit chown die Permissions setzten.

Bin echt Verzweifelt mittlerweile, weil es wirklich ein Haufen an Daten sind, die umgestellt werden müssen und das am gleichen Tag, andem ein Samba 4 AD ins Netzwerk kommt :D
Da kommt Vorfreude auf :D
 
Weitere Suche führte zum "tr"-Befehl:

http://stackoverflow.com/questions/1882189/unix-find-replace-special-characters-in-multiple-files
http://en.wikipedia.org/wiki/Tr_(Unix)
http://www.linuxjournal.com/article/2563

Ist die Ausgabe von Folgendem zum Umbenennen brauchbar (nach dem Umbenennen könntest Du ggf. den ursprünglichen find-Befehl drüber laufen lassen)?
Code:
#!/bin/bash

find test/ | while read oldname
do
    newname="$(echo $oldname | tr -cd [:alnum:]/._)"
    if test "$oldname" != "$newname"
    then
        echo "Old: $oldname"
        echo "New: $newname"
        echo
        # mv "$oldname" "$newname"
    fi
done

Edit: Bedingung nachträglich eingefügt.
 
A

Anonymous

Gast
Wenn sich die IDs nicht überschneiden, dann sollte folgendes funktionieren.

eine Datei erstellen mit Alter-UID Neuer_UID und eine Datei mit Alter_GID Neuer_GID
Beispieldatei für die UserID ( Felder: USERNAME alte_UID neue_UID)
Code:
user1 1000 2000
user2 1001 2001
user3 1002 2002
Beispieldatei File für die GID (Felder analog oben)
Code:
group1 100 200
group2 101 201
group3 102 202

folgendes Script ausführen und den Fehlerkanal des Scriptes in eine Logdatei sichern.
Code:
#!/bin/bash

# Variable Konfiguration
FILE_UID="dateiname_UID"   #hier den Dateiname in dem die Zuordnung der UID steht
FILE_GID="dateiname_GID"   #hier den Dateiname in dem die Zuordnung der GID steht
DIR="./test"               #hier den Path eintragen unter dem die zu ändernden Dateien liegen
#Ende der Konfiguration

cat "$FILE_UID"  |  while read U_NAME ALT NEU
do
    echo "UID für \"$U_NAME\" wird bearbeitet von $ALT auf $NEU"
    find "$DIR" -uid $ALT -print0 |  xargs -0 chown $NEU
    echo -e "UID für \"$U_NAME\" abgeschlossen \n"
done

cat "$FILE_GID"  |  while read G_NAME ALT NEU
do
    echo "GID für \"$G_NAME\" wird bearbeitet von $ALT auf $NEU"
    find "$DIR" -gid $ALT -print0 | xargs -0 chgrp $NEU
    echo -e "GID für \"$G_NAME\" abgeschlossen \n"
done
wurde für eine UID oder GID keine einzige Datei gefunden, gibt es eine Fehlermeldung etwa folgend :
chgrp: fehlender Operand nach „202“
„chgrp --help“ liefert weitere Informationen.
Ansonsten kommen Ausgaben welcher User oder welche Gruppe gerade bearbeitet wird. gegebenenfalls (aber durch NULL-terminierten String sehr unwahrscheinlich) die Fehlermeldungen bei ganz ganz ganz komischen Dateinamen.

robi
 
Danke für die hilfreichen Beiträge!!!

Problem bei dem Script zum Umbennen von abgdf:

Code:
#!/bin/bash

find test/ | while read oldname
do
    newname="$(echo $oldname | tr -cd [:alnum:]/._)"
    if test "$oldname" != "$newname"
    then
        echo "Old: $oldname"
        echo "New: $newname"
        echo
        mv "$oldname" "$newname"
    fi
done

Wenn ein Ordner /what's new/ existiert und darin sich eine Datei 00 11 22 33.txt befindet, ändert er schön den Ordnernamen kann aber dann nichts mehr mit dem Pfad der Datei anfangen der dieser noch /what's new/00 11 22 33.txt heißt

Old: /test/what's new
New: /test/whatsnew

Old: /test/what's new/00 11 22 33 44.txt
New: /test/whatsnew/0011223344.txt

Weitere Probleme mit üüü ööö äää, die kann er garnicht lesen.
Old: /test/üüü
New: /test/


Wenn man dieses Problem lösen könnte, wäre das perfekt, um mal diese Windows Ordnerbenennung mal glattzuziehen.
Ich denke wenn er erst alle Dateien machen könnte und dann die Ordner, würde das Problem nicht auftreten.
Am Besten wäre dann noch das es nicht einfach die Leerzeichen entfernt, sonder mit einen _ ersetzt und er was mit äüöß was anfangen könnte.

robi dein Script ist auch sehr schön, jedoch kann ich erst nach Umstellung die neue ID der User und Gruppen in die Tabelle einpflegen, deshalt müsste das Script wenn umgestellt wurde die ID über die alte /etc/passwd /etc/group in den Namen der Gruppe oder des Benutzer umwandeln und dann die Rechte ändern mit nur dem Namen.
 
sawo schrieb:
Danke für die hilfreichen Beiträge!!!

Problem bei dem Script zum Umbennen von abgdf:

Code:
#!/bin/bash

find test/ | while read oldname
do
    newname="$(echo $oldname | tr -cd [:alnum:]/._)"
    if test "$oldname" != "$newname"
    then
        echo "Old: $oldname"
        echo "New: $newname"
        echo
        mv "$oldname" "$newname"
    fi
done

Wenn ein Ordner /what's new/ existiert und darin sich eine Datei 00 11 22 33.txt befindet, ändert er schön den Ordnernamen kann aber dann nichts mehr mit dem Pfad der Datei anfangen der dieser noch /what's new/00 11 22 33.txt heißt

Old: /test/what's new
New: /test/whatsnew

Old: /test/what's new/00 11 22 33 44.txt
New: /test/whatsnew/0011223344.txt
Ha ha! Ok, das ist also komplexer als gedacht.

Man müßte also im ersten Durchgang die Verzeichnisse verarbeiten, und dann einen zweiten Durchgang für die Dateien machen, damit die dann auch gefunden werden.
Weiteres Problem:

Angenommen man hat

/test/what's new/00 11 22 33 44.txt

es gibt aber auch schon

/test/whats new/00_11_22_33_44.txt

zu dem man die Datei eigentlich umbennen wollte. Mit einem einfachen "mv" würde die dann überschrieben, wäre also verloren. Das müßte man vorher auch prüfen.

sawo schrieb:
Weitere Probleme mit üüü ööö äää, die kann er garnicht lesen.
Old: /test/üüü
New: /test/
Auch noch Encodings! Die sind immer besonders unangenehm.
Also, mit "tr" kommt man da nicht weiter, da wäre man dann bei "sed".
Gut, theoretisch ist das schon machbar. Aber ich mache sowas nicht in bash, sondern würde wahrscheinlich Python nehmen, was dann ein paar eigene Probleme mitbringt (Python 2.7 oder Python 3 z.B.). robi bleibt dagegen bei bash, meistens postet er dann eine Lösung in awk, was ich nun wieder nicht einsetze. Das ist dann alles immer ein bißchen undankbar, letztlich spricht für robi, daß dies nunmal das Unterforum "Konsole" ist.
Es macht auch wirklich keinen Spaß, Datenverarbeitungen zu schreiben, wenn man die nicht auf dem Zielsystem testen kann.
sawo, wenn Du trotzdem dranbleiben willst, könntest Du z.B. ein paar Beispieldaten (typische Verzeichnis- und Dateinamen) posten.

Wenn es für Deinen Betrieb wichtig ist, solltest Du auch in Betracht ziehen, das gegen Bezahlung in Auftrag zu geben, für die Perl-Profis hier z.B. wäre das wahrscheinlich keine große Sache; Du könntest auch in diesem Unterforum erstmal das Problem schildern, da ergibt sich dann schnell eine entsprechende Diskussion.
 
A

Anonymous

Gast
sawo schrieb:
robi dein Script ist auch sehr schön, jedoch kann ich erst nach Umstellung die neue ID der User und Gruppen in die Tabelle einpflegen, deshalt müsste das Script wenn umgestellt wurde die ID über die alte /etc/passwd /etc/group in den Namen der Gruppe oder des Benutzer umwandeln und dann die Rechte ändern mit nur dem Namen.
Keine Ahnung was du jetzt noch für Probleme siehst, die Datei lässt sich doch einfach aus den beiden /etc/passwd und /etc/group erstellen.

Zum Beispiel so hier am Beispiel der passwd.
Code:
#!/usr/bin/awk -f
BEGIN { FS = ":"
        rulesfile=""
        TEX1="Fehler in "
        TEX2="mehrfach vorhanden."
        TEX3="Warnung:"
        TEX4="User nicht vorhanden in"
        TEX5="ERROR:"
        TEX6="UID Konflikt mit"
        TEX7="ABBRUCH: wegen UID-Bereichskonflikten"}

rulesfile == "" { rulesfile = FILENAME; }
/^#/            {next}
/^ *$/          {next}
rulesfile == FILENAME { x[$1]+=1 ;y[$3]+=1;z[$1]=$3}
rulesfile != FILENAME { a[$1]+=1 ;b[$3]+=1;c[$1]=$3}

END{
        for(i in x) {if (a[i]==0) {print (TEX3,"\"" i "\"",TEX4,FILENAME)}
                if  (x[i]>1) {ERR++;print (TEX1,rulesfile,":User \"" i "\"",TEX2)}}
        for(i in y) {if  (y[i]>1) {ERR++;print (TEX1,rulesfile,":UID \"" i "\"",TEX2)}}
        for(i in a) {if  (a[i]>1) {ERR++;print (TEX1,FILENAME,":User \"" i "\"",TEX2)}}
        for(i in b) {if  (b[i]>1) {ERR++;print (TEX1,FILENAME,":UID \"" i "\"",TEX2)}}
        if (ERR) {print ("\n" TEX5,ERR,"Fehler in passwd Dateien, damit keine Bearbeitung")
                exit}
        for (i in x) {
                if ((z[i]!=c[i]) && (c[i]!=0)) {
                        for (j in c) {
                                if (z[i] == c[j]){ ERR++;print (TEX5,"\"" i "\"",TEX6,"\"" j "\"")}}
                        for (k in x) {
                                if (c[i] == z[k]){ERR++;print (TEX5,"\"" i "\"",TEX6,"\"" k "\"")}}
                        if (ERR) { print ("\n" TEX7); exit} else {
                                print (i,z[i],c[i])}}}
        print ("\nProgramm erfolgreich durchgelaufen, Ausgabe kann für UID Konvertierung genutzt werden")
}
als script.awk speichern, Ausführungsrechte drauf und wird dann mit den beiden passwd-Dateien als Argrumenten aufgerufen
Code:
linux # ./script.awk passwd_alt passwd_neu
robi 1000 2006
tftp 104 2104
sshd 102 2102
usbmux 100 2100
audio 1001 2001
statd 103 2103
wwwrun 30 1105
uucp 10 2010
news 9 110

Programm erfolgreich durchgelaufen, Ausgabe kann für UID Konvertierung genutzt werden
Sind eine ganze Menge nützlicher Überprüfungen mit eingebaut, die allerlei Fehler in den passwd findet, auskommentierte Zeilen berücksichtigt, Bereichsüberschneidungen und fehlende User in der neuen passwd melden, Bei gefunden Fehlern wird abgebrochen, es wird genau beschrieben was da nicht stimmt, bei Warnungen gehts weiter im Erfolgsfall siehe oben kommt eine entsprechende Meldung. User die in beiden passwd gleich sind, werden ignoriert, es werden also nur die UserID zusammengesucht die wirklich umgesetzt werden müssen.

Aber das Script ist ohne Garantie, hab ich nur mal so in 15 bis 30 Minuten zusammengeschrieben und nicht sonderlich tief getestet, ist nur um den folgenden Kommentar
abgdf schrieb:
robi bleibt dagegen bei bash, meistens postet er dann eine Lösung in awk, was ich nun wieder nicht einsetze. Das ist dann alles immer ein bißchen undankbar, letztlich spricht für robi, daß dies nunmal das Unterforum "Konsole" ist.
noch ein bisschen zu bekräftigen und aufzuzeigen, es gibt immer einen Script das das Unmögliche möglich macht, nur schreiben will es niemand, und wenn es da ist, dann will/kann es keiner versteht. ;)
Hier gibt es immer ein paar die ärgern sich wenn sie sehen das awk funktioniert, aber niemand erkennt was dort eigentlich passiert ;) ;) ;) ;)

robi
 
Edit: Beitrag gelöscht, da der ursprünglich gepostete Code wahrscheinlich noch ein paar Macken hat, und sich zudem offenbar sowieso keiner dafür interessiert.
 
Oben