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.

Aktuell laufende Prozesse unter Linux anzeigen

Um eine Liste der aktuell laufenden Prozesse unter Linux anzuzeigen kann man sich ps mit folgenden Schaltern zu Hilfe nehmen:

[vader@deathstar]$ ps -dF r | grep -v "ps -dF r"

Durch das weitere Anhängen des grep Befehls wird der eigene Prozess in der Liste dabei ausgeblendet. Dies liefert sodann eine ausführliche Ausgabe der laufenden Prozesse die im gegenwärtigen Augenblick die CPU beanspruchen wie folgt:

UID PID PPID C SZ RSS PSR STIME TTY STAT TIME CMD
vader 8425 7798 65 83356 39364 11 21:07 pts/0 R+ 0:18 php laser_attack.php
vader 8519 1750 62 79953 25940 19 21:08 pts/0 R+ 0:15 php shield.php

Wer nun auch noch in einer separaten screen-Session dies in Echtzeit verfolgen möchte kann dies mittels watch unter Beobachtung stellen:

[vader@deathstar]$ watch -n 0.5 'ps -dF r | grep -v "ps -dF r"'

Linux Befehle auf der bash wiederholen

Man kann zum Bespiel damit x-mal den gleichen Befehl absetzen:

vader@deathstar:~$ for i in {1..10}; do $YOUR_COMMAND$; done

Zum Beispiel um eine definierte Menge Requests an eine Domain abzufeuern und dies nicht mehrfach manuell zu wiederholen:

vader@deathstar:~$ for i in {1..5}; do curl 'http://moderlak.de/feed/'; done

Man kann das auch unendlich tun indem man den Befehl watch sich zu Hilfe nimmt:

vader@deathstar:~$ watch -n 1 curl 'http://blog.moderlak.de/feed/'

Das man nun damit keinen Unfug anstellt sei doch zum Abschluss noch deutlich genannt und gilt hiermit als klargestellt.

Diese Beispiele sind ganz klar vor allem für Testzwecke gedacht um die Performance seiner eigenen Seite unter Last zu beobachten. So könnte man zu Beispiel in einer screen-Session mehrere verschiedene Aufrufe parallelisieren und damit seine Webseite befeuern.

Screen auf der Linux-Konsole benutzen

Mittels screen ist man unter Linux in der Lage – verbunden über Putty und eine lange Serverlaufzeit ohne Neustart vorausgesetzt – ein schier endloses Linuxleben in ein und der selben Konsole zu führen.

Dies hat den Vorteil, dass längere Befehlsausführungen in einer eigenen Sitzung laufen können ohne diese Verbindung dauerhaft aufrecht erhalten zu müssen. Auch führt eine gescheiterte Netzwerkverbindung nicht dazu, dass die gesamte Sitzung abgebrochen wird sondern lediglich die Verbindung zu der Screen-Sitzung. Screen auf der Linux-Konsole benutzen weiterlesen