FHNW: sysad

Wichtige Informationen und Befehle rundum das Modul sysad an der FHNW (1. Semester).

Wichtige Informationen und Befehle rundum das Modul sysad an der FHNW (1. Semester).


Set of flashcards Details

Flashcards 92
Students 14
Language Deutsch
Category Computer Science
Level University
Created / Updated 26.10.2015 / 28.04.2025
Weblink
https://card2brain.ch/box/fhnw_sysad
Embed
<iframe src="https://card2brain.ch/box/fhnw_sysad/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was erlaubt eine Shell?

Sie erlaubt dem Benutzer die Interaktion mit dem Dateisystem, dem Prozess-Steuersystem sowie einfache Script programmierung.

Wo wird die Login Shell des Benutzers definiert?

Die Login Shell der Benutzer ist in /etc/passwd definiert.

In welchem File liegen die erlaubten Shells?

Im File /etc/shells sind die validen Shells aufgelistet.

Wie kann die Shell eines Benutzers gewechselt werden?

Mit dem Command chsh [-s] [LOGIN] kann die Shell auf folgende Arten geändert werden:

  1. Ein normaler User kann mit chsh eine vo den validen Shells in /etc/shells auswählen
  2. Wird mit chsh keine Shell angegeben, wird die Default-Shell gesetzt
  3. Ein Superuser kann den Pfad irgendeiner Shell angeben. Sie muss nicht in /etc/shells aufgelistet werden.
    chsh [-s PATH_TO_SHELL] USER_LOGIN
  4. Mit usermod -s user kann die Shell auch geändert werden

 

Mehr Infos: http://manpages.ubuntu.com/manpages/trusty/man1/chsh.1.html 

Was ist eine Shell?

Eine Shell ist eine Benutzerschnittstelle für den Benutzer. Der Benutzer kann in einer Eingabezeile Kommandos eintippen, die der Computer dann sogleich ausführt. Man spricht darum auch von einem Kommandozeileninterpreter. Im Gegensatz zu anderen Betriebssystemen sind Unix-Shells gewöhnliche Anwenderprogramme ohne besondere Privilegien. Dadurch ist sie leicht ersetzbar.

Was sind die Aufgaben einer Shell?

  • Auf ein User-Prompt warten: $ (normaler User);  # (Superuser);  > (weiterer Input)
  • Kommandozeile intepretieren und in Kommandoname, Optionen und Parametern aufteilen
  • Sucht gewünschtes Programm via PATH (welche beim Start der Shell eingelesen werden).
    Es kann auch ein voller Pfad stattdessen angegeben werden.
  • Steuerung von Ein- und Ausgaben, welche auch umgeleitet werden können (an andere Programme oder Dateien)
  • Ersetzung von Sonderzeichen und anderen Kommands, welche die Shell erweitert
  • Erzeugt Child- und Hintergrundprozesse

Wie lautet die Shell Kommando Intepretation? (Reihenfolge relevant)

  1.  Ein Kommando wird erst ausgeführt, wenn der Benutzer am Ende der
    Kommandozeile die RETURN-Taste drückt.
     
  2. Die Shell liest bis zum ersten Kommandotrenner („&“ „&&“ „||“ „;“ „>“ „<„) und
    stellt fest, ob Variablenzuweisungen erfolgen sollen oder die Ein-Ausgabe
    umgelenkt werden muss.
     
  3. Die Shell zerlegt die Kommandozeile in einzelne Argumente. Sie trennt die
    einzelnen Argumente durch eines der Zeichen, die in der Shell-Variablen IFS
    (Internal Field Separator) stehen, normalerweise Leerzeichen, Tabs und
    Newline-Zeichen.
     
  4. Variablenreferenzen, die in der Kommandozeile stehen, werden durch ihre
    Werte ersetzt.
     
  5. Kommandos, die in `...` oder bei der bash in $(...) stehen, werden ausgeführt
    und durch ihre Ausgabe ersetzt.
     
  6. stdin, stdout und stderr werden auf ihre "Zieldateien" umgelenkt.
     
  7. Falls in der Kommandozeile noch Zuweisungen an Variablen stehen, werden diese ausgeführt.
     
  8. Die Shell sucht nach Wildcard/Glob und ersetzt diese durch passende Dateinamen.
     
  9. Die Shell führt das Kommando aus.

Was sind die drei virtuelle Standarddateien, die dem Terminal zugeordnet sind?

  1. stdin
    Damit können Daten in ein Programm (Streams) eingelesen werden. In der Regel via Tastatur. Dateideskriptor 0

    less < eingaben.txt
  2. stdout
    Standardausgabe für ein Programm an den User. Normalerweise ist sie mit dem Monitor verbunden. Dateideskriptor 1

    find . -name '*.html' 1> ausgaben.txt

     
  3. stderr
    Fehler- und Statusmeldungen ausgeben. Diese können mit Weiterleitungen von der Standardausgabe getrennt werden. So können Vermischungen gemieden werden. Dateideskriptor 2

    find . -name '*.html' 2> fehlermeldungen.txt | less

Diese virtuelle Datein findet man unter /dev/std*

Was ist mit Datenweiterleitung "Redirection" gemeint?

Es ist eine Funkton in Kommandointerpretern, die es ermöglicht, Standard Streams vom User an spezifizierte Stellen weiterzuleiten. 

  1. command1 > file1
    Output von command1 ins file1 schreiben. stdout (Bildschrim) wäre der Default
     
  2. command1 < file1
    Inhalte von file1 and command1 übergeben. stdin wäre der Default für Inhalte.
     

  3. command1 2> file1
    Die Fehler produziert duch command1 werden ins file1 geschrieben.

  4. command1 >> file1
    Fügt den Output von command1 ans Ende von file1 hinzu.

Was für Spezialitäten gibt es bei der Input / Output-Umleitung?

  1. Die Ausgabe kann unterdrückt werden indem man ins /dev/null schreibt:
    command1 > /dev/null
    command1 2> /dev/null (für Fehlermeldungen)
    command1 > file1 2> /dev/null (Kombinationen möglich

     
  2. Es gibt spezielle Platzhalter, welche es ermöglichen, Ausgaben an stdout und stderr kompakter zu definieren.
    command1 > output 2>&1

Was macht Pipelining?

  • Es verbindet zwei Kommandos über einen temporären Puffer. Die Ausgabe vom ersten Programm wird als Eingabe ans zweite Programm genutzt. Die Reihenfolge der Ausgabe wird bei der Eingabe übernommen.
     
  • Die Pufferung und Synchronisation übernimmt das Betriebssystem.
     
  • Es können mehrere Pipes eingesetzt werden.

Beispiel: ls | more

Was sind wichtige Merkmale von Pipelining?

  • Es können mehrere Kommandos hintereinander mit Pipes verbunden werden.
     
  • Sie haben im Vergleich zu anderen Ein- und Ausgabe Ausführungen Vorrang.
     
  • Zuerst wird für jeden Abschnitt ein neuer Prozess erzeugt, welcher dann die Ausgabe mit der Eingabe des nächsten Prozesses verbindet.
     
  • Fehler können ebenfalls durchgereicht werden:
    command1 2> &1 | command2

Was sind nützliche Filter fürs Piping?

  • head [file(s)]
    Die ersten n Zeilen der Dateien. Default 10. Keine Datei angegeben holt er Daten aus stdin
     
  • tail [-/+n] [datei]
    Ausgabe der letzten n Zeilen einer Datei. Default 10. Keine Datei angegeben holt er Daten aus stdin.
     
  • more
    Seitenweise Ausgabe des stdin
     
  • wc
    Zählen von Wörtern von stdin
     
  • sort
    Sortieren des stdin nach diversen Kriterien
     
  • tee [file]
    Kopiert von stdin nach stdout und schreibt die Daten gleichzeitig in die angegebene Datei

Mit welchem Command lässt sich das aktuelle Directory ausgeben?

pwd

Mit welchen Kommands können die letzten Befehle ausgeführt werden?

  • !!
    führt den letzten Command (mit Flags) nochmals aus
     
  • !le
    führt den letzten Command (mit Flags) aus, der mit le begonnen hat

Diese greifen nämlich auf die Bash-History des Users zurück.

Wieso ist cd in der Shell eingebaut?

Wäre cd ein eigenes Programm, dann würde es nur für sich selbst das Directory wechseln. 

  1. cd foo
  2. the cd process starts
  3. the cd process changes the directory for the cd process
  4. the cd process exits
  5. your shell still has the same state, including current working directory, that it did before you started.

Sonderzeichen beim Bashing

  • Backticks ``
    echo "Ich bin im Ordner: `pwd`"

    Der Command pwd wird erkannt und dessen Ausgabe wird dargestellt.

Bashing: Einige Wildcards

  • ls -l * --all files
  • ls -l ? --all files with one character
  • ls -l [a,c,g] --all files which start with a, c or g
  • ls -l [!a-z] --all files which aren't a to z

Wie sieht die Schichtenarchitektur des Internets aus? Von Applikation bis zum Ethernet (physischer Layer)

Dieses Modell wird auch OSI-Modell genannt (Open Systems Interconnection Model). Es ermöglicht die Kommunikation über unterschiedlichste technische Systeme. Jede Schicht hat eine klar definierte Schnittstelle. Deswegen sind sie gut untereinander austauschbar.

Jede Schicht besteht aus zwei Teilen: Dem Header und dem Body. Der Header beinhaltet relevante Protokol-Informationen für die Schicht. Der Body beinhaltet die Daten der vorherigen/nächsten Schichten.

Jede Schicht fügt oder enternt ihren Header zu dem Body/Data-Block. Dieser Prozess nennt man Encapuslation.

As the data is passed up from one layer to the next higher layer, each header (each skin of the onion) is stripped off by its respective layer. For example, the Internet layer removes the IP header before passing the encapsulated data up to the transport layer ( TCP or UDP ).

Wie funktioniert das Routing?

Routing bezeichnet das Festlegen von Wegen der Daten bei der Übermittlung von verschiedenen Netzwerken. Es sucht den schnellsten/kürzesten Weg.

Will ein Gerät ein IP-Paket versenden, werden die Netzwerkteile der Quell-IP-Adresse und Ziel-IP-Adresse verglichen. Stimmen sie überein, befindet sich der Ziel-Host im selben Netz, und das Paket wird direkt an den Empfänger gesendet. Im Falle von Ethernet-Netzen dient das ARP (Address Resolution Protocol) zum Auffinden der Hardwareadresse. Das ARP arbeitet auf der zweiten Schicht des OSI-Modells und stellt die Verbindung zur ersten Schicht her.

Stimmen die Netzwerkteile dagegen nicht überein, so wird über eine Routingtabelle die IP-Adresse eines Routers(next hop) gesucht und das Paket an diesen Router gesendet. Dieser hat über eine oder mehrere Schnittstellen Kontakt zu anderen Netzen und routet das Paket mit demselben Verfahren weiter – er konsultiert dazu seinerseits seine eigene Routingtabelle und sendet das Paket gegebenenfalls an den nächsten Router oder an das Ziel. Bis zum Endgerät kann das Paket viele Netze und Router durchlaufen. Das Durchlaufen eines Routers wird auch Hop(Sprung) genannt, das Routingverfahren Next Hop Routing.

Was ist ARP?

ARP steht für Address Resolution Protocol.

Sie mappt die Netzwerkadresse (IPv4 Adresse) zu einer physischen Ethernet Addresse  (MAC Adresse).

ifconfig lesen und verstehen

  • HWaddr 00:70:40:42:8A:60 - This is the hardware address or MAC address which is unique to each Ethernet card which is manufactured. 
  • inet addr - indicates the machine IP address
  • Bcast - denotes the broadcast address
  • Mask - is the network mask which we passed using the netmask option (see above).
  • UP - This flag indicates that the kernel modules related to the Ethernet interface has been loaded.
  • BROADCAST - Denotes that the Ethernet device supports broadcasting - a necessary characteristic to obtain IP address via DHCP.
  • RUNNING - The interface is ready to accept data.
  • MULTICAST - This indicates that the Ethernet interface supports multicasting. 
  • MTU - short form for Maximum Transmission Unit is the size of each packet received by the Ethernet card.
  • RX Packets, TX Packets - The next two lines show the total number of packets received and transmitted respectively. Errors or values > 0 could mean congestion in network
  • collisions - The value of this field should ideally be 0. If value >  0, it could mean that the packets are colliding while traversing your network - a sure sign of network congestion.
  • RX Bytes, TX Bytes - These indicate the total amount of data that has passed through the Ethernet interface either way.

ifconfig Command: Was für Flags gibt es?

ifconfig [-a] [-s] [-v] [interface]

-a = alle Interfaces, auch wenn sie ausgeschaltet sind
-s = eine kurze liste
-v = eine verbose liste mit ein paar error conditions
interface = name der schnittstelle (eth0, lo)

Was macht netstat und was für Optionen hat es?

netstat gibt die Netzwerkverbindungen, Routingtabellen, Interfacestatistiken und noch weiteres aus.

(none) = zeigt eine liste von offenen Sockets.
-r = listet die Routingtabelle auf
-i = zeigt eine Tabelle von Netzwerkinterfaces
-s = Zeigt eine Statistik für jedes Protokol

Optionen

-v = Verbose Ausgabe
-A / --protocol = Nur eine bestimmte Netzwerkfamilie darstellen
-p = PID und name des Programs auflisten
-l = Nur Sockets zeigen die zuhören
-a = alle Sockets (non-/listening) betreiben
-c = Jede Sekunde eine neue Ausgabe generieren
-e = Extra Informationen ausgeben

Ausgabe von nestat verstehen.

Internet Connections (TCP/UDP)

  • Proto: Protokol des Sockets
  • Recv-Q: Bytes nicht kopiert vom Programm
  • Send-Q: Bytes nicht bestätigt vom Programm
  • Local/ForeignAddress: Adresse und Port des Sockets (ohne -n) werden die Nummern übersetzt in Services Names
  • State: Kann bei UDP leer sein

Bei UNIX Sockets

  • Flags: ACC wird bei noch nicht verbundenen Sockets dargestellt, falls der korrespondierende Prozess auf ein Request wartet. Andere Flags sind nicht interessant.
  • Type: DGram (Connectionless), STREAM (Connection), RAW, RDM (Reliably Delivered Messages)
  • Path: Pfad zum korrespondierenden Prozess

Was ist Unix Domain Socket?

Unix Domain Socket ist eine Schnittstelle, die einen Datenaustausch zwischen Prozessen erlaubt. Es funktioniert ähnlich wie bei Netzwerkschnittstellen, nur dass der OS Kernel die Aufgabe übernimmt. 

Wie funktioniert traceroute?

Direkt aus der Man Page kopiert:

traceroute tracks the route packets taken from an IP network on their way to a given host. It utilizes the IP protocol's timte to live (TTL) and attempts to elicit an ICMP TIME_EXCEEDED response frome ach gateway along the path to the host.

We start the probe with a ttl of 1 and increase it by 1 untl we get a ICMP "port unreachable" or "TCP reset" which means we got to the host, or hit a max (default 30 hops). Three probes (default) are sent at each ttl setting.

Was sind nützliche Flags bei traceroute?

Mit -T oder -U können Firewalls umgehen werden. 

-T (tcp): Schickt Mitteilungen via TCP und über dem Port 80 (default)
-p (port): Der Port kann z.B. auf 25 geändert werden.
-U (udp): Verwendet udp datagram über dem Port 53 (default, dns)

Unterschied zwischen UDP und TCP?
Bei UDP erhält der Host unsere Proben IMMER und kann verwirrt werden, weil wir Random Daten schicken. In den meisten Fällen werden sie nicht antworten. Der letzte Hop sehen wir in diesem Fall nie.

Unterschiede zwischen TCP und UDP?

UDP:

  • Muss keine Connection aufbauen, bevor Daten gesendet werden können. Nur Sender und Empfänger angeben.
  • Die Pakete sind kleiner (der Header beträgt 8b im Vergleich zu TCP 20b)
  • Eine Vermittlung des Pakets ist nicht gewährleistet.
  • Die Reihenfolge der Pakete ist auch nicht gewährleistet.
  • Eine Antwort des Empfängers wird erzwungen.
  • Fazit: Unzuverlässlich aber schnell.

TCP:

  • Three-Way Handshake: Sender und Emfpänger müssen zuerst eine Connection aufbauen, bevor der Datenfluss beginnen kann.
  • Grösserer Overhead als bei UDP und einen grösserer Header.
  • Empfänger antwortet auf Anfrage des Senders.
  • Retransmission: Falls ein Paket verloren geht, versucht er das Paket wieder zu senden.
  • Die Reihenfolge der Pakete wird gewährleistet. Pakete können in der falschen Reihenfolge ankommen, TCP sortiert sie anschliessend richtig.
  • Fazit: Eventuell werden Daten nicht immer übermittelt, weil TCP Congestion Control macht.

Mehr Infos: https://www.youtube.com/watch?v=Vdc8TCESIg8 

Notiz aus Unterricht: Router

Router haben eigene Protokolle um miteinander zu kommunizieren. Er übernimmt das Routing der Nachricht. Die Routingtabelle wird zum Teil erweitert, weil Router dazu lernen. Routertabellen bleiben klein, weil jeder Router "nur" die Adressen zur nächsten Instanz kennt. Nur der letzte Router weiss, ob es wirklich diese Adresse ist. Während dem Routing wird das äusserste Paket aufgemacht (Header), analysiert und mit einem neuen Header ersetzt und erneut verpackt.

Was kann unter anderem mit netstat analysiert werden?

Mittels netstat kann unter anderem herausgefunden werden, was für Dienste auf der Maschine laufen. Verwenden oder sind sie auf Netzwerke angewiesen? Sind die Dienste wirklich relevant? 

Unötige Dienste können identifiziert, gekillt oder sogar aus dem Bootup entfernt werden.

Notiz aus Unterricht: Welche genauen Zusatzaufgaben hat das Betriebssystem, wenn es eine TCP/IP-basierte Netzwerkschnittstelle unterstützen muss?

  • reassembly: entegenehmen, speichern, sequenzreihenfolge pruefen, neu ordnen
     
  • falls reihenfolge nicht stimmt, request starten falls ein paket fehlt.
     
  • im hauptspeicher muss der request gespeichert werden
     
  • es braucht mehr speicher...kann nicht vorhergesagt werden wieviel es in den naechsten ms benoetigt.

Wo werden Benutzer und Gruppen abgespeichert?

Die Benutzerdatenbank befindet sich unter /etc/passwd.

Die verschiedenen Gruppen werden in /etc/group aufgelistet.

Jeder Eintrag/Zeile entspricht einem User/Gruppe.

Wie ist /etc/passwd aufgebaut?

Benutzername:Passwort*:UID:GID:User Comment:Home Dir:Shell

*Passwort: x = encrypted und in /etc/shadow abgelegt.

Wo liegen die Passwörter der Benutzer und wie ist sie aufgebaut?

Das File liegt in /etc/shadow und kann nur mit "root" Privilegien gelesen werden. Sie enthält die verschlüsselten Passworte.

Wichtig: Chiffrierung erfolgt mit einer Einweg-Funktion. Sie kann nicht decryptet werden. Eingabe wird also chiffriert und dann verglichen.

Benutzer:Passwort:Last Changed:Min change #Days:Max change #Days:Warn #Days:Inactive:Expire

Aufbau von /etc/group

Name:Passwort*:GID:Benutzer1,Benutzer2

*Passwort: Ist in der Regel leer

Wichtige Merkmale von Benutzer Privilegien

  • Die Rechte sind an die Attribute von Dateien geknüpft. Diese Rechte entscheiden, welche Benutzer oder Gruppenmitglieder eine Datei lesen, verändern oder ausführen können.
  • Loggt sich ein Benutzer ein, läuft die Shell mit der UID des Benutzers. Alle daraus gestarteten Prozesse laufen mit dieser UID.
  • Wird eine Datei ausgeführt (Prozess erstellt) läft dieser mit den Rechten des Benutzers/Aufrufers.
  • Mit sudo kann für das Kommando der Benutzer geändert werden.

Was ist die umask und was macht sie?

Der Befehl umask vergibt die Standard-Zugriffsrechte beim Anlegen neuer Dateien und Verzeichnissen. Jeder Prozess hat seine eigene Maske, die er beim erstellen von Files einsetzt. Falls ein Child-Prozess erzeugt wird, erbt sie die umask vom Parent. 

Falls der Prozess eine Shell ist, wird die Maske durch den umask Befehl geändert.

 

Was ist unter Mandatory Access Control (MAC) zu verstehen?

Das System bestimmt, auf Regeln basierend der Zugriffskontrollstrategie, wer auf Dateien zugreifen, schreiben und lesen darf. In herkömmlichen System sind diese Regeln durch Benutzer und Gruppen gesteuert. Bei MAC werden diese Zugriffsrechte durch Regeln und Eigenschaften definiert.

Wie lauten die Oktal Notationen für die Zugriffsrechte von Dateien?

4 = read (r)
2 = write (w)
1 = execute (x)

Pattern: BenutzerGruppeAndere

744 = User darf alles, Gruppe und andere dürfen nur lesen

440 = User und Gruppe darf lesen, andere dürfen nichts.