chmod selektiv für Verzeichnisse?

  • Moin moin,


    unter /pub sind ein paar Verzeichnisse und Unterverzeichnisse mit Dateien.
    Unter Samba kann ich im Moment nicht drauf zugreifen.
    Mit nem beherztem

    Code
    chmod -R 555 /pub

    sind dann ALLE Verzeichnisse UND Dateien in diesem Modus und ich kann sie lesen.


    Für die Verzeichnisse ist das so gewollt,
    die Dateien hätte ich aber lieber auf "444" gelassen, weil lesen kann ich die dann auch, ausführbar sind die eh nicht.


    Wie kann ich chmod dazu bringen nur die Directories selektiv auf "555" zu setzen??


    Gruß
    Uwe

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • Hi!


    Bei dem chmod gibt es auch die + und - Optionen


    Also:


    chmod -R u+X,g+X,o+X /tmp/test


    setzt mit dem GROSSEN X nur für Directories das execute-Bit


    Dabei ist u User g Gruppe und o Other.


    Benutze ich regelmäßig, geht gut.


    Tschau
    Tueftler17

  • Sah ja gut aus, beim probieren bin ich aber leider nicht weiter kommen als unten


    Code
    vdr:~# chmod -v 555 'find /pub -type d'
    chmod: Beim Holen der Attribute von »find /public3 -type d«: Datei oder Verzeichnis nicht gefunden


    Hab auch schon verschieden Apostroph-Kombinationen probiert und mit Pipes (<>|) leider noch kein Erfolg.

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • Prima, der lief durch, danke.


    Die andere Lösung interessiert mich aber auch noch,
    immer wieder interessant was die Shell so hergibt.

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • `Backticks`...wieder was gelernt :)


    Damit löppts, danke.

    Code
    vdr:~# chmod -v 444 `find /pub -type d`
    Modus von »/pub« nach 0444 (r--r--r--) geändert
    Modus von »/pub/test« nach 0444 (r--r--r--) geändert

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • By the way, das -R hab ich hier instiktiv weggelassen, habs nicht weiter probiert.
    Vermutlich werden dann wieder alle Dateien mitgeändert,
    weil chmod das übergebene Dir wiederum rekursiv durchsucht.
    Hope, it helps.

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • Zitat

    find . -type d -exec chmod 777 {} \;


    Bis zur ge-schoften Klammer konnte ich folgen.
    Wens interessiert, aus dem Man

    Code
    alle  auf  den  Kommandonamen  folgenden Argumente bis zu einem Semikolon ; werden als Kommandozeilenargumente für das Kommando interpretiert; das Semikolon kann nicht weggelassen werden,
    und  es  muß  durch  mindestens ein Whitespace von der letzen Option getrennt werden; die Konstruktion {} wird durch den Pfadnamen der Datei ersetzt; die Klammern und das Semikolon müssen
    in der Kommandozeile für find quotiert werden, damit sie nicht von der Shell bearbeitet werden


    Danke und Gruß
    Uwe

    vdr: AsRock B75 Pro3-M - G1610 - Asus 210 - Cine S2 v6.5 - yaVdr 0.5

  • vdr:~# chmod -v 555 ' chmod -v 555
    chmod: Beim Holen der Attribute von »find /public3 -type d«: Datei oder Verzeichnis nicht gefunden


    Es müssen "back-quotes" sein also
    chmod -v 555 `chmod -v 555 `


    :lehrer1
    Sachen die in "back-quotes" sind werden zuerset ausgeführt und die ausgabe an diese stelle in die Befehlszeile gesetzt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!