Dateirechte auf andere Dateien übertragen

Man kann unter Linux die Dateirechte mittels chmod relativ einfach setzen.

Wenn man nun jedoch die Berechtigungen einer Datei als Ausgangsbasis nehmen möchte so kann man dies Mittels dem Parameter –reference ganz simpel durchführen.

Gehen wir von folgendem Stand im aktuellen Verzeichnis aus:

vader@deathstar:~/test/$ ls -l
-rwxrwxrwx 1 vader users 0 Mär 16 17:54 source.txt
-rw-rw-r-- 1 vader vader 0 Mär 16 17:54 target.txt

Führe ich nun folgenden Befehl aus:

chmod --reference source.txt target.txt

ändern sich die Berechtigungen wie folgt:

vader@deathstar:~/test/$ ls -l
-rwxrwxrwx 1 vader users 0 Mär 16 17:54 source.txt
-rwxrwxrwx 1 vader vader 0 Mär 16 17:54 target.txt

Hier sieht man nun, dass die Berechtigungen des Benutzers, der Gruppe sowie für Everyone übernommen wurden und mit denen der Quelldatei restlos übereinstimmen.

Das ganze kann auch auf beliebig vielen Dateien angewandt werden:

chmod -R --reference source.txt target1.txt target2.txt

Sowie auf Dateien die einem gewünschten Zielmuster entsprechen:

chmod -R --reference source.txt target*

und in besonders harten Situationen sogar rekursiv:

chmod -R --reference source.txt ~/somewhere_else

Und wie kann es anders sein, ist dies auch mit dem Befehl chown auf die selbe Art und Weise möglich um anstelle dessen auch die Gruppen und Benutzerinformationen zu setzen:

vader@deathstar:~/test/$ ls -l
-rwxrwxrwx 1 vader users 0 Mär 16 17:54 source.txt
-rwxrwxrwx 1 vader vader 0 Mär 16 17:54 target.txt

Führe ich nun folgenden Befehl aus:

chown --reference source.txt target.txt

ändern sich die Berechtigungen wie folgt:

vader@deathstar:~/test/$ ls -l
-rwxrwxrwx 1 vader users 0 Mär 16 17:54 source.txt
-rwxrwxrwx 1 vader users 0 Mär 16 17:54 target.txt

Anwendungsbeispiel

Dies kann nun zum Beispiel dort angewandt werden wo Dateien einem Webserver hinzugefügt wurden. Die Berechtigungen dieser Dateien werden sodann dem aktuellen Benutzer zugeordnet und können nun mit einer bestehenden Referenzdatei in einem Rutsch mit den beiden oben genannten Befehlen gesetzt werden ohne die Berechtigungen explizit anzugeben oder mühsam herauszusuchen.

Veröffentlicht von

Sebastian

Als erfahrener Softwarentwickler entwickelt Sebastian in einer Softwareschmiede in Bonn Individualsoftware mit den Schwerpunkten in PHP und MySQL. Er hat eine pfiffige Frau sowie drei quirlige Söhne, fährt gerne Auto und liebt handwerkliche Arbeiten die im häuslichen Umfeld so anfallen.