PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : chown: Besitzer- und Gruppenzugehörigkeit



Windwalker
01.01.12, 10:41
Hallo zusammen und ein frohes neues Jahr!

ich habe ein recht großes Problem mit einem Webserver.
Es wäre toll, wenn Ihr Euch mein Problem mal durchlesen und Eure Gedanken mir mitteilen könntet.

Ich wollte in einem Unterverzeichnis auf dem Server den Befehl

chown -R www-data:www-data ./
audführen.
In einem Moment geistiger Abwesenheit führte ich jedoch

chown -R www-data:www-data /
aus (Punkt vergessen!).
D.h. ich habe global alles aus www-data:www-data gesetzt; auch noch mit dem Root-User. :-(

Nun bin ich dabei, alles wieder zurückzusetzen.
Zum Glück habe ich einen zweiten Webserver der gleichen Struktur als Vorlage.
Hier habe ich mir mit

ls -ltrR > datei.txt
alles in eine Datei (in Wirklichkeit in mehrere, nach Verzeichnissen) schreiben lassen und setze dieses alles mittels eines Recovery-Systems in einer riesen Aktion gerade manuell wieder zurück.

Nun habe ich jedoch gerade festgestellt, dass ich die Verzeichnisse und Dateien vergessen habe, die mit ".<name>" beginnen.
Sind das versteckte? D.h. ich muss nun nochmals mit der Option "-a" das Ganze wiederholen?

Nun meine Frage an Euch:
Ich bin selbst Software-Entwickler (das macht meine Tat ja noch trauriger...), aber mir fehlt die Kenntnis von Linux und der Shell.
1.
Gibt es nicht eine Möglichkeit (Shell-Skript, Python?), mir auf dem "Quellsystem" beginnend von "/" alle Dateien und Verzeichnisse mit komplettem Pfad und Besitzerzuordnung in eine Datei schreiben zu lassen?
Diese Datei dann auf dem anderen System importieren und zeilenweise die Dateien/Verzeichnisse auslesen und die Besitzerzuordnung umsetzen?

2. Kann mir auf dem kaputten System alle Dateien und Verzeichnisse ausgeben lassen, die noch auf www-data:www-data stehen, d.h. die ich noch übersehen habe?

Bitte helft mir, ich bin hier fast am Verzweifeln...

Danke!

buzz768
01.01.12, 11:11
Zu 1


find / -xdev -depth -exec stat -c "chown %u.%g %n" {} \; > script

script müsstest du dann auf dem anderen PC ausführen. Bei 2 hilft find mit den Optionen -uid und -gid

Windwalker
01.01.12, 11:18
Zu 1


find / -xdev -depth -exec stat -c "chown %u.%g %n" {} \; > script



Danke, das sieht gut aus!
Kann ich aber sicher sein, dass die UserId und GruppenId auf beiden Systemen identisch sind?

Windwalker
01.01.12, 11:30
Habe rausgefunden, wie ich das überprüfe:
> cat /etc/group
Danke!

buzz768
01.01.12, 11:33
Oder du nimmst "chown %U.%G %n"
Schau dir die Manpages von find und stat an, evtl. möchtest du z.B. -xdev nicht verwenden.

Windwalker
01.01.12, 11:37
Danke!

Erwische ich damit versteckte Dateien?
(BTW, sind eigentlich ".<name>" versteckte Dateien?)

pibi
01.01.12, 11:47
(BTW, sind eigentlich ".<name>" versteckte Dateien?)Ja. Guckst Du zB. hier (http://de.linwiki.org/wiki/Versteckte_Datei).

Gruss Pit.

buzz768
01.01.12, 11:48
Erwische ich damit versteckte Dateien?

Ja........