Hilfe zu Unix-Aufgabe gesucht

Hallo an alle Unix-Freaks

Ich verzweifel hier gerade ueber einer alten Betriebssystempruefung. Vielleicht koennt ihr mir helfen dieses Brett vorm Kopf loszuwerden ?

„Wir betrachten folgenden Ausschnitt aus /etc/passwd:
meier:*:122:86:Inf5:/home/meier:sh
a) Was bedeuten die einzelnen Felder ?
b) Werden diese alle vom BS benoetigt bzw. von den Standardkommandos ? Ausnahmen !
c) Geben Sie zwei Kommandos an, die eine Datei lesen, aber nicht veraendern !
d) Geben Sie Standardsituationen an bei denen etc/passwd geaendert wird !
e) Die Konstante Inf5 ist nicht definiert. Sie wissen aber, dass sie sich im Verzeichnis /usr/inf und in den Unterverzeichnissen befindet. Suchen Sie sie. Vermeiden Sie dabei unnoetige Fehlermeldungen.
f) Was ist hier die Ausgabe ?
z = „-1“; [“$z" -lt 1 -o „$z“ -gt 10] && z=10; echo „$z“;

Sehr weit bin ich leider noch nicht gekommen…
Bei a) duerfte das /home/meier der absolute Pfad zum Home-Verzeichnis sein und das sh fuer Shell stehen. * steht ja normalerweise fuer beliebige Zeichen, aber was der Stern in diesem Zusammenhang bewirkt ist mir noch nicht klar
Bei c) haette ich auf less und more getippt.
Bei f) bezweifel ich ob die Angabe ueberhaupt so stimmt, da dass damals eine Gedaechtnismitschrift war. Zumindest das ganze Zeug in den eckigen Klammern sieht fuer mich sehr komisch aus.

Vielleicht kann mir ja der ein oder andere eine Frage erklaeren ?
Im Voraus schon mal danke.
Gruss Claudia

Hallo an alle Unix-Freaks

Hm, na mal sehen. Hi,

Ich verzweifel hier gerade ueber einer alten
Betriebssystempruefung. Vielleicht koennt ihr mir helfen
dieses Brett vorm Kopf loszuwerden ?

"Wir betrachten folgenden Ausschnitt aus /etc/passwd:
meier:*:122:86:Inf5:/home/meier:sh
a) Was bedeuten die einzelnen Felder ?

$ man 5 passwd

b) Werden diese alle vom BS benoetigt bzw. von den
Standardkommandos ? Ausnahmen !

Bloede Frage. Was sind Standardkommandos? Ich wuerde die Antwort verweigern. Diplomatischer ist vielleicht die Antwort: „Nein, das fuenfte Feld ist eher unwichtig.“

c) Geben Sie zwei Kommandos an, die eine Datei lesen, aber
nicht veraendern !

Noch mehr Schwachsinn:

$ cat /etc/passwd
$ cp /etc/passwd /dev/null
$ sed 's%^.\*$%%' /etc/passwd

und noch etwa 1000 weitere.

d) Geben Sie Standardsituationen an bei denen etc/passwd
geaendert wird !

Ich weisz ja nicht, was etc/passwd genau ist (falls das so wirklich dasteht: Antwort verweigern), aber wann /etc/passwd geaendert wird Dir nach Lektuere der obigen manpage klar.

e) Die Konstante Inf5 ist nicht definiert. Sie wissen aber,
dass sie sich im Verzeichnis /usr/inf und in den
Unterverzeichnissen befindet. Suchen Sie sie. Vermeiden Sie
dabei unnoetige Fehlermeldungen.

Aeh… die Frage versteh ich ueberhaupt nicht. Geht es darum, eine Datei Inf4 in /usr/inf zu finden?

$ man 1 find

Das Unterdruecken von Fehlermeldungen hast Du in

$ man 1 `basename $SHELL`

gelernt und kannst das anwenden, sobald der Begriff unnoetige Fehlermeldungen naeher definiert wurde.

f) Was ist hier die Ausgabe ?
z = „-1“; ["$z" -lt 1 -o „$z“ -gt 10] && z=10; echo „$z“;

Hast Du das kopiert? Weil, es ist auch voellig falsch und gibt eigentlich nur Fehlermeldungen aus. Funktionieren wuerde:

$ z="-1"; ["$z" -lt 1 -o "$z" -gt 10] && z=10; echo "$z";

Erklaerung fuer die Ausgabe (10) gibt’s bei

$ man 1 `basename $SHELL`
$ man 1 test

Sehr weit bin ich leider noch nicht gekommen…
Bei a) duerfte das /home/meier der absolute Pfad zum

Ja.

Home-Verzeichnis sein und das sh fuer Shell stehen.

Ja. Und da dort auch der absolute Pfad hingehoert… wuerde ich sagen, dasz meier vielleicht Probleme beim Anmelden kriegt.

* steht ja normalerweise fuer beliebige Zeichen, aber was der
Stern in diesem Zusammenhang bewirkt ist mir noch nicht klar

Steht in der manpage.

Bei c) haette ich auf less und more getippt.

Ja, auch.

Bei f) bezweifel ich ob die Angabe ueberhaupt so stimmt, da
dass damals eine Gedaechtnismitschrift war. Zumindest das
ganze Zeug in den eckigen Klammern sieht fuer mich sehr
komisch aus.

[ ist entweder ein alias auf test oder ein symlink /usr/bin/[ -> /usr/bin/test oder ein eigenes binary mit entsprechendem Funktionsumfang. Die manpage zu test erklaert das ganze komische Zeug in den eckigen Klammern.

Vielleicht kann mir ja der ein oder andere eine Frage
erklaeren ?

Falls Du nach der Lektuere der Dokumentation noch konkrete Fragen hast bist Du willkommen. Magst Du mir verraten, an welcher Uni solche Pruefungsfragen gestellt werden?

HTH,
Gruss vom Frank.

Halo,

Hallo an alle Unix-Freaks

geek, nicht freak bitte :wink:

"Wir betrachten folgenden Ausschnitt aus /etc/passwd:
meier:*:122:86:Inf5:/home/meier:sh
a) Was bedeuten die einzelnen Felder ?

man passwd
(solltest du kein Unix installiert haben hilft dir manpage.org)

b) Werden diese alle vom BS benoetigt bzw. von den
Standardkommandos ? Ausnahmen !

auch das solltest du aus der manpage dir herleiten können

c) Geben Sie zwei Kommandos an, die eine Datei lesen, aber
nicht veraendern !
d) Geben Sie Standardsituationen an bei denen etc/passwd
geaendert wird !
e) Die Konstante Inf5 ist nicht definiert. Sie wissen aber,
dass sie sich im Verzeichnis /usr/inf und in den
Unterverzeichnissen befindet. Suchen Sie sie. Vermeiden Sie
dabei unnoetige Fehlermeldungen.

vielleicht
cd /usr/inf
grep -R ‚Inf5=‘ * 2>/dev/null

f) Was ist hier die Ausgabe ?
z = „-1“; ["$z" -lt 1 -o „$z“ -gt 10] && z=10; echo „$z“;

[…], aber was der Stern in
diesem Zusammenhang bewirkt ist mir noch nicht klar

man shadow

Bei c) haette ich auf less und more getippt.

stimmt. Es gibt noch cat, und auch ls liest Dateien aus, die in dem Fall halt Verzeichnisse sind.

Bei f) bezweifel ich ob die Angabe ueberhaupt so stimmt, da
dass damals eine Gedaechtnismitschrift war. Zumindest das
ganze Zeug in den eckigen Klammern sieht fuer mich sehr
komisch aus.

Die Whitespaces stimmen nicht. Richtig wäre

z="-1"; ["$z" -lt 1 -o "$z" -gt 10] && z=10; echo "$z";

Ist aber etwas merkwürdig. $z wird auf -1 gesetzt, dann wird überprüft ob z kleiner 1 ist oder größer 10. Wenn das stimmt wird z auf 10 gesetzt und ausgegeben. Was war die Aufgabe? 10 auszugeben? das geht wesentlich kürzer…

Ich hoffe das reicht dir. Wenn nicht, frag noch mal nach.

Grüße,
Moritz

Danke
Hallo Moritz

Super, das reicht mir schon mal. Werd jetzt mal die Manpages durchackern und schauen was ich selber noch rausbekomme.
Wenn noch Fragen auftauchen meld ich mich wieder.

Bei der letzten Aufgabe war der Sinn nur herauszufinden was diese „Monsterstatements“ letztendlich ausgeben.

Danke, Gruss
Claudia

Hallo Frank

Auch dir vielen Dank !!!
Bin grad am durchforsten der Manpages.

Falls Du nach der Lektuere der Dokumentation noch konkrete
Fragen hast bist Du willkommen. Magst Du mir verraten, an
welcher Uni solche Pruefungsfragen gestellt werden?

Die ganzen Fragen sind eine Gedaechtnismitschrift einer Betriebssystempruefung der FH Rosenheim. Aber ich vermute mal, dass derjenige der die Aufgaben zusammengeschrieben hat wohl ziemlich viele Fehler in die Aufgabenstellung reingebracht hat ???
Aber zur Pruefungsvorbereitung nimmt man halt was man kriegen kann :wink:

Gruss Claudia

Hi und Hallo Claudia!

"Wir betrachten folgenden Ausschnitt aus /etc/passwd:
meier:*:122:86:Inf5:/home/meier:sh
a) Was bedeuten die einzelnen Felder ?

meier = user-name im unix
* = meier ist ein gerade neu eingerichteter und noch kein passwort besitzender user, deshalb keine anmeldung im unix mgl.
122 = meiers user-id
86 = meiers group-id
Inf5 = information über den user meier
/home/meier = home-verzeichnis von meier
sh = standard-shell

b) Werden diese alle vom BS benoetigt bzw. von den
Standardkommandos ? Ausnahmen !

alle, außer der Eintrag Inf5

c) Geben Sie zwei Kommandos an, die eine Datei lesen, aber
nicht veraendern !

cat, grep, awk, diff, view

d) Geben Sie Standardsituationen an bei denen etc/passwd
geaendert wird !

  • einrichtung eines neuen users
  • änderung des passwortes durch root
  • löschung eines users
  • änderung der user-information

e) Die Konstante Inf5 ist nicht definiert. Sie wissen aber,
dass sie sich im Verzeichnis /usr/inf und in den
Unterverzeichnissen befindet. Suchen Sie sie. Vermeiden Sie
dabei unnoetige Fehlermeldungen.

schreib in ein kleines ausführbares skript folgendes hinein:
find /usr/inf -type f > /tmp/list
cat /tmp/list | while read FILE
do
grep -il Inf5 $FILE 2>/dev/null
done
rm /tmp/list

f) Was ist hier die Ausgabe ?
z = „-1“; ["$z" -lt 1 -o „$z“ -gt 10] && z=10; echo „$z“;

eine Fehlermeldung, dass z nicht definiert ist

Gruss an dich zurück!
—> Mayo