Linux: Rechte aller Ordner und Unterordner (rekursiv) ändern

Anzeige

In manchen Fällen ist es nötig, die Rechte nur der Ordner und Unterordner (rekursiv) unter Linux zu ändern. Oder umgekehrt - die Rechte nur aller Dateien.
Die Befehle find und chmod könnten bei solchen Aufgaben helfen.


Syntax:

find /Ordner/ -type d -exec chmod xxx {} \;


-type d
bedeutet, dass find  nur Ordner und Unterordner auflistet.
-exec sorgt dafür, dass die Rechte jedes gefundenen Ordners und Unterordners durch chmod geändert werden.
xxx sind die Rechte, die gesetzt werden.
{} \;  - was es genau bedeutet, ist gut in  wiki.ubuntuusers.de beschrieben.

 

Beispiel:

ls -l /etc/meinprogramm/

-rw-r--r-- 1 root root    0 2014-03-15 23:33 Datei1
-rw-r--r-- 1 root root    0 2014-03-15 23:33 Datei2
drwxrwxrwx 3 root root 4096 2014-03-15 23:35 Ordner1
drwxrwxrwx 3 root root 4096 2014-03-15 23:32 Ordner2
drwxrwxrwx 3 root root 4096 2014-03-15 23:32 Ordner3


In diesem Beispiel gelten in /etc/meinprogramm/ folgende Ordnerrechte: 777 (drwxrwxrwx)

Aufgabe:


Die Rechte aller Ordner, die sich in /etc/meinprogramm/ befinden und aller Unterordner sollen nun auf 755 geändert werden.

find /etc/meinprogramm/ -type d -exec chmod 755 {} \;


Ergebnis:

ls -l /etc/meinprogramm

-rw-r--r-- 1 root root    0 2014-03-15 23:33 Datei1
-rw-r--r-- 1 root root    0 2014-03-15 23:33 Datei2
drwxr-xr-x 3 root root 4096 2014-03-15 23:35 Ordner1
drwxr-xr-x 3 root root 4096 2014-03-15 23:32 Ordner2
drwxr-xr-x 3 root root 4096 2014-03-15 23:32 Ordner3


Auf die Ordner wurden nun folgende Rechte rekursiv gesetzt: 755 (drwxr-xr-x)


Möchte man die Rechte nur der Dateien rekursiv setzten, könnte man statt -type d die Option -type f verwenden.

 

Troubleshooting:


Wenn folgende Meldung kommt,

chmod: Beim Setzen der Zugriffsrechte für „/etc/meinprogramm/“: Die Operation ist nicht erlaubt


könnte es daran liegen, dass der aktuelle User keine ausreichende Rechte für die Änderung der Berechtigungen hat.
Mögliche Lösung: Man soll sich zuerst mit dem User anmelden, der die Rechte auf die Ordner hat, dann die Änderung durchführen.
Alternativ könnte man die Rechte der Ordner mit dem root User ändern:

sudo find /etc/meinprogramm/ -type d -exec chmod 755 {} \;


Hinweis: Diese Anleitung wurde mit Ubuntu 10.04 getestet.

Kommentar veröffentlichen