# Rechte an alle Unterordner übergeben



## bauchinj (10. Februar 2010)

Hallo!

Ich arbeite mit der Shell und möchte gerne ein Interface programmieren, in dem ich Rechte einzelner Ordner ändern kann bzw. diese auf die Unterordner übernehmen kann.

Die Rechte kann ich bereits für einen Ordner ändern, allerdings häng ich ein bisschen mit dem übergeben der Rechte an die Unterordner:


```
PATH='/......./'
PERMS='777'
if[ -d $PATH]; then
      folders=`find $DIRPATH -mindepth 1 -type d`
      for folder in $folders
      do
          chmod $PERMS $folder
      done
fi
```

ich weiß nicht, wie ich die for-Schleife aufbauen soll... so gehts scheinbar nicht :-(


----------



## Raubkopierer (10. Februar 2010)

Man könnte auch einfach einen Blick in die manpage von chmod werfen:


```
chmod [rechte] /pfad/zum/ordner -R
```


----------



## Matthias Reitinger (13. Februar 2010)

Raubkopierer hat gesagt.:


> Man könnte auch einfach einen Blick in die manpage von chmod werfen:
> 
> 
> ```
> ...


Besser wäre

```
chmod -R [rechte] /pfad/zum/ordner
```
Dass deine Version auch funktioniert, ist eine (undokumentierte) Besonderheit vom GNU-chmod.

Grüße,
Matthias


----------



## Raubkopierer (14. Februar 2010)

Das hängt mit dem GNU Standard Parameter Parsing zusammen bei dem es egal ist in welcher Reihnfolge Parameter übergeben werden und ist durchaus so gewollt.
Sprich das ist bei allen GNU-Programmen so


----------



## deepthroat (14. Februar 2010)

Hi.





Raubkopierer hat gesagt.:


> Das hängt mit dem GNU Standard Parameter Parsing zusammen bei dem es egal ist in welcher Reihnfolge Parameter übergeben werden und ist durchaus so gewollt.
> Sprich das ist bei allen GNU-Programmen so


Eben, nur bei GNU Programmen. D.h. auf Mac OS X, Sun OS, HP usw. funktioniert das dann nicht.

Falls man ein Skript erstellt sollte man möglichst darauf achten keine speziellen Eigenheiten von bestimmten Implementierungen zu verwenden.

Gruß


----------



## Raubkopierer (14. Februar 2010)

In dem Falle hast du natürlich Recht. Nach Posix-Standard müssen alle Optionen vor "nicht-Optionen" stehen. Ich persönlich find die GNU-Variante schöner und verwende sie in meinen Programmen.


----------



## bofh1337 (14. Februar 2010)

chmod -Rf <user>:<gruppe> /pfad/pfad

Da brauche ich kein Scripting für oO


----------



## deepthroat (14. Februar 2010)

bofh1337 hat gesagt.:


> chmod -Rf <user>:<gruppe> /pfad/pfad
> 
> Da brauche ich kein Scripting für oO


Ja, das hatte Raubkopierer ja schon im Beitrag Nr. 2 geklärt. Warum erwähnst du das nochmal? Was willst du uns damit sagen...? ;-)

Gruß


----------



## bofh1337 (15. Februar 2010)

deepthroat hat gesagt.:


> Ja, das hatte Raubkopierer ja schon im Beitrag Nr. 2 geklärt. Warum erwähnst du das nochmal? Was willst du uns damit sagen...? ;-)
> 
> Gruß



So wäre es aber richtiger 
User und Gruppenrechte sollten da gesetzt werden (User können ja auch in verschiedene Gruppen sein).........und ich habe diesen Beitrag wohl übersehen


----------



## deepthroat (15. Februar 2010)

bofh1337 hat gesagt.:


> So wäre es aber richtiger
> User und Gruppenrechte sollten da gesetzt werden (User können ja auch in verschiedene Gruppen sein).


Du hast das wohl mit chown verwechselt, oder?!

Gruß


----------



## bofh1337 (15. Februar 2010)

deepthroat hat gesagt.:


> Du hast das wohl mit chown verwechselt, oder?!
> 
> Gruß



Verdammt -.-

Du hast recht....chmod und Userrechte hmm....vielleicht kommt das ja irgendwann mal


----------



## OnlyFoo (16. Februar 2010)

Abgesehen davon hat er im ersten Beitrag die Variable PATH genannt, PATH ist aber der Suchpfad für alle Programme, wie auch chmod. Darum wird chmod vermutlich nichtmal in dem Codebeispiel gefunden!


----------



## Raubkopierer (16. Februar 2010)

Womit der Grund für das nicht funktionieren des Skripts auch gefunden wäre. 
Merke: Niemals existierende Umgebungsvariablen in Skripts verwenden wenn man diese nicht wirklich ändern will


----------

