Klausuraufgabe: 4.1
Sie möchten, ausgehend von Ihrer normalen Benutzer-ID, in der Shell in eine Datei datei.txt in einem Verzeichnis D schreiben, für das aber nur der Administrator Schreibrechte hat. Mit welchem Kommando können Sie dies erreichen?
◯ dosu echo „Hallo“ > D/datei.txt
◯ echo „Hallo“ | sudo tee D/datei.txt
◯ sudo echo “Hallo” | tee D/datei.txt
◯ write root D/datei.txt
◯ sudo echo “Hallo” > D/datei.txt
◯ sys D:datei.txt
✘ dosu echo „Hallo“ > D/datei.txt
✔ echo „Hallo“ | sudo tee D/datei.txt
✘ sudo echo “Hallo” | tee D/datei.txt
✘ write root D/datei.txt
✘ sudo echo “Hallo” > D/datei.txt
✘ sys D:datei.txt
Erklärung:
In diesem Fall fungiert das Befehlstool tee als Pipe-Operator und Datei-Schreiber. Hier ist, wie es funktioniert:
tee
echo "Hallo" gibt den Text "Hallo" aus.
echo "Hallo"
Der |-Operator ("Pipe") leitet den Ausgabestrom von echo an tee weiter.
|
echo
tee empfängt den Text "Hallo" und schreibt ihn sowohl auf die Standardausgabe als auch in die angegebene Datei D/datei.txt.
D/datei.txt
Der Befehl tee ist nützlich, weil er den Text nicht nur auf der Konsole anzeigt, sondern auch in einer Datei speichert. Durch die Verwendung von sudo tee erhält tee die Berechtigungen, um in die angegebene Datei zu schreiben, auch wenn sie sich in einem Verzeichnis befindet, auf das der aktuelle Benutzer normalerweise keine Schreibberechtigungen hat.
sudo tee
Klausuraufgabe: 4.2
Der Befehl ls -l zeigt folgendes an. Welche Aussage können Sie treffen?
Besitzer: Klaus darf: Schreiben und Lesen
Gruppe: Knopper darf: Schreiben und Lesen
Alle anderen dürfen: Lesen
Besonderheiten: vor den Rechten steht P, die Datei ist eine also eine benannte Pipe
Eine benannte Pipe ist eine spezielle Datei in Unix, die bidirektionale Kommunikation zwischen Prozessen ermöglicht und im Dateisystem einen Namen hat, wodurch verschiedene Prozesse darauf zugreifen können.
Klausuraufgabe: 4.3
Mit welchem Unix/Linux-Befehl ändern Sie die Dateirechte der Datei datei.pipe aus der vorigen Aufgabe so ab, dass sie ausschließlich von ihrem Besitzer gelesen und geschrieben werden darf und ansonsten keine Rechte, auch nicht an andere, vergeben werde?
◯ chmod useronly=yes datei.pipe
◯ chmod u=rw,go= datei.pipe
◯ chown ug=wx,o-rwx datei.pipe
◯ chmod rw------ datei.pipe
◯ rm -f datei.pipe
◯ chmod u=rw,go = >datei.pipe
◯ oder eigener Vorschlag: __________________________________
✘ chmod useronly=yes datei.pipe
✔ chmod u=rw,go= datei.pipe
✘ chown ug=wx,o-rwx datei.pipe
✘ chmod rw------ datei.pipe
✘ rm -f datei.pipe
✘ chmod u=rw,go = >datei.pipe
✔ oder eigener Vorschlag:
chmod 600 datei.
Ausgabe:
prw------- 1 klaus knopper ….. etc
modifizierte übung zu Dateirechten:
Ausgabe: -rw-r--r-- 1 zaza kage 0 12 Mai test.txt
Wie kann man die Datei rechte so ändern, dass der Benutzer die Datei ausführen kann. (+ erneute Ausgabe)
Vorher:
-rw-r--r-- 1 zaza kage 0 12 Mai test.txt
Kommando: chmod u+x test.txt (&& ls -l)
Nachher:
Modifizierte übung zu Dateirechten:
Wie kann man die Datei rechte so ändern, Benutzer, Gruppe und Andere
erst keine rechte haben? (+ erneute Ausgabe)
dann alle rechte haben? (+ erneute Ausgabe)
Nur der Admin soll alle 3 Rechte haben und der Rest soll nur lesen können. (+ erneute Ausgabe)
Jeder soll keine Rechte haben:
Kommando: chmod ugo= test.txt && ls -l
Alternative: chmod a= test.txt && ls -l
Ausgabe: ---------- 1 zaza kage 0 12 Mai test.txt
Jeder soll alle Rechte haben:
Kommando: chmod ugo=rwx test.txt && ls -l
Alternative: chmod a=rwx test.txt && ls -l
Ausgabe: -rwxrwxrwx 1 zaza kage 0 12 Mai test.txt
Admin alle Rechte und Rest nur Lesen:
Kommando: chmod go-wx test.txt && ls -l
Ausgabe: -rwxr--r-- 1 zaza kage 0 12 Mai test.txt
Wenn nach ls -l folgende Ausgabe kommt:
-rwSr--r-- 1 zaza kage 0 12 Mai test.txt
Was hat dieses "S" zu bedeuten?
In der Ausgabe von ls -l zeigt das "S" im Dateiberechtigungsfeld an, dass das Set-UID- oder Set-GID-Bit für die Datei gesetzt ist, je nachdem, wo es sich befindet.
ls -l
Wenn das "S" im Besitzerberechtigungsfeld (anstelle des kleinen "x") steht, bedeutet dies, dass das Set-UID-Bit gesetzt ist. Dies bedeutet, dass die Datei mit den Berechtigungen des Dateibesitzers ausgeführt wird, wenn sie von einem Benutzer ausgeführt wird.
Wenn das "S" im Gruppenberechtigungsfeld (anstelle des kleinen "x") steht, bedeutet dies, dass das Set-GID-Bit gesetzt ist. Dies bedeutet, dass die Datei mit den Berechtigungen der Dateigruppe ausgeführt wird, wenn sie von einem Benutzer in dieser Gruppe ausgeführt wird.
Wenn sowohl das Set-UID- als auch das Set-GID-Bit gesetzt sind, wird das "S" als Großbuchstabe angezeigt. Wenn eines oder beide Bits gesetzt sind und der entsprechende Benutzer oder die entsprechende Gruppe keine Ausführungsrechte für die Datei hat, wird das "s" anstelle des kleinen "x" angezeigt.
Wie lautet das Kommado um den Benutzer zu wechseln?
su
Last changed10 months ago