Rekursives CHMOD, aber...

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von DeeDee0815, 09.08.2008.

  1. #1 DeeDee0815, 09.08.2008
    DeeDee0815

    DeeDee0815 Doppel-As

    Dabei seit:
    13.02.2007
    Beiträge:
    130
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Gast1

    Gast1 Guest

    Vermutlich werden Dir "find" in Verbindung mit der Option "-type" und ein anschliessendes "-exec" helfen.
     
  4. kworx

    kworx Jungspund

    Dabei seit:
    05.08.2008
    Beiträge:
    15
    Zustimmungen:
    0
    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 {} \;
    
     
  5. #4 Wolfgang, 09.08.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    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
     
  6. kworx

    kworx Jungspund

    Dabei seit:
    05.08.2008
    Beiträge:
    15
    Zustimmungen:
    0
    xargs ist bei find nicht nötig, da find auch die Leerzeichen gut verarbeitet.

    Grüße
    kworx
     
  7. #6 DeeDee0815, 09.08.2008
    DeeDee0815

    DeeDee0815 Doppel-As

    Dabei seit:
    13.02.2007
    Beiträge:
    130
    Zustimmungen:
    0
    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
     
  8. #7 DeeDee0815, 10.08.2008
    DeeDee0815

    DeeDee0815 Doppel-As

    Dabei seit:
    13.02.2007
    Beiträge:
    130
    Zustimmungen:
    0
    Hat alles bestens Funktioniert, vielen Dank nochmal!

    Liebe Grüße, die unabhängig von der guten Lösung sind,
    DeeDee0815
     
  9. #8 saeckereier, 10.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    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)
     
  10. kworx

    kworx Jungspund

    Dabei seit:
    05.08.2008
    Beiträge:
    15
    Zustimmungen:
    0
    Stimmt. Da kann ich nur zustimmen. Wieder was gelernt. Danke schön. :)
     
  11. Andre

    Andre Foren Gott
    Moderator

    Dabei seit:
    01.04.2002
    Beiträge:
    3.876
    Zustimmungen:
    0
    Mit sowas habe ich mal unseren kompletten Unixboardserver zerballert :D

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

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 saeckereier, 10.08.2008
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    @Andre: Dafür hat man ja die Backups :-)
     
  14. Andre

    Andre Foren Gott
    Moderator

    Dabei seit:
    01.04.2002
    Beiträge:
    3.876
    Zustimmungen:
    0
    Ja sicher.......

    aber ärgerlich ist so ein Fehler schon *g*

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

Rekursives CHMOD, aber...

Die Seite wird geladen...

Rekursives CHMOD, aber... - Ähnliche Themen

  1. Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen

    Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen: Hallo zusammen, mein Ziel ist das rekursive Auslesen von 2 Verzeichnisebenen und das ausführen von Befehlen auf den vorhandenen Dateien. Konkret...
  2. Rekursives Ändern einer bestimmten Dateiendung

    Rekursives Ändern einer bestimmten Dateiendung: Hallo Leute, ich habe meine Musiksammelung komplett im Ogg-Vorbis-Format gespeichert. Seit neustem neigen aber alle möglichen Programme dazu,...
  3. Unterschied chmod und umask

    Unterschied chmod und umask: Hallo liebe Community, ich hätte heute mal eine für manche wahrscheinlich sehr simple Frage: Ich bin bei der Beschäftigung mit Linux auf chmod...
  4. Gnome will Ausweichmodus entfernen

    Gnome will Ausweichmodus entfernen: Geht es nach dem Veröffentlichungsteam von Gnome, wird Version 3.8 im April 2013 ohne Ausweichmodus erscheinen. Gnome wird dann nur noch auf...
  5. Linux cp/chmod /etc/shadow Shellcode

    Linux cp/chmod /etc/shadow Shellcode: 126 bytes small Linux/x86 cp /etc/shadow /tmp && chmod 777 /tmp/shadow shellcode. Weiterlesen...