Prüfungsvorbereitung

Ich hab noch eine Prüfung zu schreiben im Fach “Betriebssysteme” und gelegentlich stolper ich über eine Frage, wo ich auf der Leitung stehe. Ich hoffe, es ist okay, wenn ich so fernab von Java einen kleinen Thread für meine Prüfungsfragen habe.

So, aktuelle Frage:
“Was ist der Unterschied zwischen /tmp und tmp?” (Es geht um UNIX-Systeme.)

/tmp ist ein Verzeichnis, soweit klar, aber was soll tmp sein?

/tmp ist ein absoluter Pfad und tmp ist ein relativer. Wenn du dich im Verzeichnis / befindest, dann ist beides dasselbe. Mit tmp ist ein Verzeichnis namens “tmp”, welches im aktuellen Arbeitsverzeichnis liegt gemeint.

Okay, also zum Verständnis ein Beispiel

/home/Conny/tmp/bla/blub/grunz
Wenn ich mich jetzt in „grunz“ befinde, könnte ich mit „cd /tmp“ direkt zum Verzeichnis „tmp“ wechseln, statt dass ich 3x „cd …“ eingeben müsste. Und würde ich mich in „Conny“ befinden, würde „cd tmp“ reichen? Sag ja, bitte. :smiley:

Man könnte auch sagen, dass tmp das gleiche ist wie ./tmp

*** Edit ***

[QUOTE=Conny]Okay, also zum Verständnis ein Beispiel

/home/Conny/tmp/bla/blub/grunz
Wenn ich mich jetzt in “grunz” befinde, könnte ich mit “cd /tmp” direkt zum Verzeichnis “tmp” wechseln[/QUOTE]

Nein, mit “cd /tmp” würdest du in das in jedem Unix vorhandene Verzeichnis “/tmp” wechseln, das auf der gleichen Ebene wie “/home” liegt; direkt unterhalb vom sogenannten Wurzelverzeichnis /

[QUOTE=Conny]Okay, also zum Verständnis ein Beispiel

/home/Conny/tmp/bla/blub/grunz
Wenn ich mich jetzt in “grunz” befinde, könnte ich mit “cd /tmp” direkt zum Verzeichnis “tmp” wechseln, statt dass ich 3x “cd …” eingeben müsste. Und würde ich mich in “Conny” befinden, würde “cd tmp” reichen? Sag ja, bitte. :D[/QUOTE]

Nope ein cd ~/tmp würde dich in das tmp in deinen Homeverzeichnis bringen.

Okay, dann nochmal gucken, ob ich’s jetzt verstanden habe.

Ich habe jetzt zwei tmp-Verzeichnisse.
Einmal als Stammverzeichnis und einmal als Verzeichnis in meinem Home-Ordner.

Mit “cd /tmp” lande ich immer im Stammverzeichnis. Mit “cd /home/Conny/tmp” lande ich dann in dem Verzeichnis in meinem Home-Ordner. Richtig?
Und je nachdem, ob ich mich im root-Verzeichnis oder in meinem Home-Verzeichnis befinde, lande ich bei “cd tmp” dann entweder in “/tmp” oder in “/home/Conny/tmp”. Richtig???

Richtig!
Kannst du das nicht irgendwo testen?

mkdir ~/tmp
cd /
pwd
cd tmp
pwd
cd
pwd
cd tmp
pwd
cd /tmp
pwd

Getestet hatte ich es schon nach dem Hinweis mit absolut und relativ, aber die richtige wörtliche Beschreibung hat mir dann noch gefehlt.

Hey, meine Gehirnwindungen tanzen Samba! Wieder einen Punkt näher am “nicht durchfallen”.

Anstatt mir das im Bezug auf ein spezielles Verzeichnis zu merken, würde ich mir die grundlegende Syntax anschauen und die Bedeutung der Zeichen.

Z.B.
. = aktuelles Verzeichnis
… = eine Ebene höher
/ = root
~ = /home/AktuellerBenutzer

Ja, das kommt in späteren Fragen nochmal. Aber allein schon aus der ersten Frage jetzt heraus zu erkennen, dass “tmp” auch ein Verzeichnis darstellen sollte, war für mich schwierig. Es hätte ja auch ein Programm sein können oder eine Datei ohne Endung.

Stimmt, das könnte man natürlich in Abhängigkeit der Befehle setzen. “tmp” als auch “/tmp” sind für sich genommen nichtssagend. Man kann auch ein Programm “tmp” nennen.

So, da ich die letzte Frage jetzt gut verinnerlicht habe, mal eine Frage zu Schutz-Geschichten
“Wie lassen sich alle Dateien (*) in einem Unix-Verzeichnis durch den Besitzer mit dem Kommando chmod so schützen, dass nur er und die Mitglieder seiner Gruppe Zugriff haben? Dabei soll der vorhandene Schutz für den Besitzer und die Gruppe beibehalten werden.”

Nehmen wir also an, ich hätte ein Verzeichnis mit folgenden Dateien
rwxr-xr-- dumdidum.dat
rwxrwxr-x hollario.sh
rwxrw-rw- tralala.dat

Ich soll jetzt also allen Anderen außer Besitzer und Gruppe alle Rechte entziehen, oder?
Und das mache ich so:

chmod o-rwx ./*

Oder?

Könnte ich ./* auch nur mit * darstellen? Oder muss ich es sogar ganz anders machen?

Genau richtig. * reicht aus.

Jipie, was verstanden! Danke!

kannst du das nicht einfach ausprobieren? Tipp: es gibt ein Flag für rekursives Ändern…

chmod -R

Ehrlich gesagt, wollte ich es nicht ausprobieren, weil ich immer etwas Angst habe, dass ich mir was zerschieße (unbegründet?).
Dann werd ich mir wohl doch mal ein Test-Verzeichnis anlegen. Ich hab ja noch einen Haufen mehr Fragen über Schutz-Bits.:rolleyes:

Entweder Test-Verzeichnis oder virtuelle Maschine ^^

Eine VM. Super Idee! Da kann ich einfach drüber bügeln, falls ich das Unmögliche schaffe.

Oder du hast nach dem OS installieren und was du noch brauchst einen Snapshot erstellt. Im Fehlerfall brauchst du nur den Snapshot wiederherstellen ohne lange zu installieren.

Noch eine gute Idee. Ich glaub, ich muss hier öfter mal nachfragen. :smiley: