Rekursives CHMOD, aber...

DeeDee0815

DeeDee0815

Doppel-As
Hallo,

ich habe einen blöden Fehler gemacht: Ich habe aus versehen per rekursivem CHMOD es geschaftt, alles in meinem Heimatordner auf das Recht 755 zu setzen. Wie das zu erklären ist, weiß ich aber auch nicht so genau: Ich muss wohl

Code:
$ chmod -R 755 .*

eingegeben haben: Sinn davon war es, die Dateien im aktuellen Verzeichnis, die mit einem Punkt begannen, zu chmodden, weil das ja standartmäßgi nicht passiert. Irgendwie führte das aber dazu, dass chmod in das übergeordnete Verzeichnis wechselte, was mein Heimatordner war, und da von wirklich ALLEN Dateien und Ordnern, ob versteckt oder nicht, das CHMOD auf 755 setze. Das ist ja erstmal nicht schlimm, nicht auszudenken wenn ich auf diese Weise ein chown root oder sowas gemacht hätte. Das System, trotz gechmoddeter Konfigurationsdateien der Anwendungen, läuft weiter einwandfrei.

Es ist nun aber ziemlich blöd, wenn jede blöde Textdatei, die ich öffne, ausgeführt werden will, und ich von Nautilus gepromtet werde, ob ich die Datei ausführen will.

Daher möchte ich ein Shellskript haben, was folgendes bei ALLEN Dateien und Ordnern rekursiv macht, egal ob diese versteckt sind, oder nicht:
Verzeichnisse CHMOD 755, wie es sich gehört
Dateien CHMOD 644, wie es sich gehört

Könnte es da Probleme geben, wenn zum Beispiel irgendwas mit gconf oder so ein solches Recht bekommt? Ansonsten wäre ich für Lösungsansätze dankbar, da ich noch nicht so shellskrpterfahren bin.

MfG
DeeDee0815
 
Vermutlich werden Dir "find" in Verbindung mit der Option "-type" und ein anschliessendes "-exec" helfen.
 
Für die Ordner benutzt du in deinem Homeverzeichnis ein
Code:
$ find ./ -type d -execdir chmod 755 {} \;
und für die Dateien
Code:
$ find ./ -type f -execdir chmod 644 {} \;
 
Hallo,

ich habe einen blöden Fehler gemacht: Ich habe aus versehen per rekursivem CHMOD es geschaftt, alles in meinem Heimatordner auf das Recht 755 zu setzen. Wie das zu erklären ist, weiß ich aber auch nicht so genau: Ich muss wohl

Code:
$ chmod -R 755 .*
...
Irgendwie führte das aber dazu, dass chmod in das übergeordnete Verzeichnis wechselte, was mein Heimatordner war, und da von wirklich ALLEN Dateien und Ordnern, ob versteckt oder nicht, das CHMOD auf 755 setze.

In jedem Verzeichnis findest du einen Eintrag für das übergeordnete Verzeichnis. ..
Dieser matcht natürlich auch auf .*

Der Lösungsansatz wurde schon geschrieben.
Wobei du eventuell mit einer Pipe und xargs besser fährst, fall Leerzeichen in Dateinamen verwendet wurden.

Gruß Wolfgang
 
Hallo Leute,

ja vielen Dank für die schnellen Antworten: Echt klasse, vielen Dank!

Das .* auch auf .. matcht, da hätte ich natürlich auch selbst drauf kommen können :rofl:, danke für die Erläuterung.

Ansonsten werde ich die Lösungen erstmal in ein paar Testverzeichnissen ausprobieren, bevor ich mir womöglich noch durch einen Tippfehler meinen home-Ordner zerschieße.

Also nochmals vielen Dank, ich schreibe dann nochmal, ob alles geklappt hat.

MfG
DeeDee0815
 
Hat alles bestens Funktioniert, vielen Dank nochmal!

Liebe Grüße, die unabhängig von der guten Lösung sind,
DeeDee0815
 
Also das einfachste wäre gewesen:
Code:
chmod u=rw,go=r -R /home/xyz;
chmod u=rwX,go=rX -R /home/xyz
das grosse X bedeutet executable wenn:

a) x gesetzt war oder
b) es sich um ein Verzeichnis handelt

Da man mit dem ersten Aufruf alle x entfernt muss man das aber als Root machen.
(Einfacher weil man nicht noch find Syntax lernen muss, wenn mans nur kopiert tut sich das natürlich nichts. Aber das "X" bei chmod ist eine recht praktische Sache, die man mal erwähnen sollte)
 
Hallo,

ich habe einen blöden Fehler gemacht: Ich habe aus versehen per rekursivem CHMOD es geschaftt, alles in meinem Heimatordner auf das Recht 755 zu setzen. Wie das zu erklären ist, weiß ich aber auch nicht so genau: Ich muss wohl

Code:
$ chmod -R 755 .*

eingegeben haben: Sinn davon war es, die Dateien im aktuellen Verzeichnis, die mit einem Punkt begannen, zu chmodden, weil das ja standartmäßgi nicht passiert. Irgendwie führte das aber dazu, dass chmod in das übergeordnete Verzeichnis wechselte, was mein Heimatordner war, und da von wirklich ALLEN Dateien und Ordnern, ob versteckt oder nicht, das CHMOD auf 755 setze. Das ist ja erstmal nicht schlimm, nicht auszudenken wenn ich auf diese Weise ein chown root oder sowas gemacht hätte. Das System, trotz gechmoddeter Konfigurationsdateien der Anwendungen, läuft weiter einwandfrei.

Es ist nun aber ziemlich blöd, wenn jede blöde Textdatei, die ich öffne, ausgeführt werden will, und ich von Nautilus gepromtet werde, ob ich die Datei ausführen will.

Daher möchte ich ein Shellskript haben, was folgendes bei ALLEN Dateien und Ordnern rekursiv macht, egal ob diese versteckt sind, oder nicht:
Verzeichnisse CHMOD 755, wie es sich gehört
Dateien CHMOD 644, wie es sich gehört

Könnte es da Probleme geben, wenn zum Beispiel irgendwas mit gconf oder so ein solches Recht bekommt? Ansonsten wäre ich für Lösungsansätze dankbar, da ich noch nicht so shellskrpterfahren bin.

MfG
DeeDee0815

Mit sowas habe ich mal unseren kompletten Unixboardserver zerballert :D

@Devilz: Erinnerst du dich noch daran? War damals eine langen Nacht *g*
 
Ja sicher.......

aber ärgerlich ist so ein Fehler schon *g*

Die ganze Aktion hatte eine komplette Server Reninitialisierung zur Folge ;-)
 

Ähnliche Themen

chmod Fehler chmod: Ungültige Option --

Schriftbild verbessern / mini howto

Server-Monitoring mit RRDTool

Zurück
Oben