Linux
Linux Befehle und Grundlagen
Linux Befehle und Grundlagen
-
- 1 / 64
-
Flashcards
Erfinder
Linux wurde von Linus Torvalds an der Universität von Helsiki 1991 ins Leben gerufen.
Was ist Linux?
- Multiuser--
- Multitasking-
- Kernelbasiertes-
- Open Source-
- Kostenloses
Betriebssystem.
Linux gilt als
- enorm verbreitet im Serverbereich
- stabil
- Ressourcen-sparsam
- sicher
- bedientechnisch gewöhnungsbedürftig
Was ist Open Source?
pen Source bedeutet "Quelloffen", d.h. jeder kann den Quellcode einer Open Source Software einsehen, überprüfen und ggf. auch anpassen.
Linux ist Open Source. Linux ist ebenfalls freie Software, was bedeutet, dass die Benutzer von Linux die Freiheit haben Linux auszuführen, zu kopieren, zu verbreiten, anzupassen und zu verbessern. "Frei" ist hier mehr im Sinne von Meinungsfreiheit, als kostenlos zu verstehen. i.d.R. ist ein Entwickler bei der Verwendung von Open Source Software automatisch durch die Lizenz (GPL) dazu verpflichtet, seine eigene Software (z. B. eine Erweiterung einer bestehenden Open Source Komponente) ebenfalls unter dieselbe Lizenz zu stellen (Copyleft), womit die eigens geschriebene Software ebenfalls Open Source sein muss.
Vergleiche zu Windows
Windows hat eine enorm grosse Benutzeranhängerschaft und ist eines der am einfachsten bedienbaren Betriebssysteme. Dadurch existiert auch eine sehr grosses Softwareangebot und eine hohe Untersützungsdichte von Hardware. Durch den hohen Verbreitungsgrad wird für Windows auch am meisten Malware programmiert, weshalb Windows betreffend Sicherheit im Vergleich zu Linux und OS X den schlechtesten Ruf besitzt.
Weitere Eigenschaften von Windows: Einfach bedienbar, Plug&Play (gute HW-Unterstützung)
Windows ist ein proprietäres Betriebssystem (Closed source) und wurde auf MS-DOS Basis entwickelt. Die erste Version Windows 3.0 wurde 1990 veröffentlicht.
Vergleiche zu MAC OS X
Mac OS X
Mac OS wurde 1984 von Apple Computers entwickelt (Macintosh PC mit Mac OS) mit der Absicht, dass es nur auf Apple Computern lauffähig ist.
Haupteigenschaften von Mac OS X sind: "Sicherheit", Zuverlässigkeit, einfach bedienbar, gut integriert in die Produkte von Apple.
Mac OS X basiert auf einer BSD Basis, wobei Linux eine unabhängige Implementation eines Unix-ähnlichen Betriebssystem ist. Die Systeme sind daher sehr ähnlich, Ihre Binärdateien aber nicht untereinander kompatibel. OS X verwendet viele Applikationen welche nicht Open Source und ebenfalls auf Bibliotheken basieren, welche nicht Open Source sind.
Aufgaben eines Linuxsystemadministrators
In der Rolle des Linux Systemadministrators tragen Sie in der Praxis eine hohe Verantwortung über Ihr Linuxsystem. Die Tätigkeiten eines Linux Systemadmins sind vielfältig und abwechslungsreich.
Nachfolgende Liste soll einen (unvollständigen) Überblick verschaffen über die möglichen Tätigkeitsbereiche eines Sysadmins:
- Benutzeradministration (Einrichtung und Unterhalt von Accounts)
- System- und Softwareupdates und -upgrades, Systempflege
- Installation und Konfiguration von neuen Softwarekomponenten
- Netzwerkkonfigurationen (Routing, Bridgeing, Firewalling, DNS, usw.)
- Programmierung einfacher Shell-Scripts zur Automatisierung von Tasks
- Überwachung des Systems (Monitoring, Alerting, Log-Management, Intrusion Detection, usw.)
- Umsetzung von Sicherheitspolicies für Benutzer und Netzwerk
- Password und Identitätsmanagement (IDM)
- Erstellung von Dateisystemen, Einbindung von Datenträgern, logischen Volumes, allg. Storage Konzepte umsetzen
- Planung und Umsetzung von Backup/Recovery Strategien, Disaster Recovery Konzepten, High Availability Settings, uvm.
Viele dieser Bereiche werden wir in diesem Kurs nicht oder nur oberflächlich anschauen. Auch routinierte Linux Systemadministatoren (5 Jahre Erfahrung +) sind i.d.R. auf einzelne Bereiche stärker spezialisiert als andere.
Abmelden
exit
Stoppen
halt
oder:
shutdown -h
oder:
poweroff
oder:
init 0
oder sudo halt mit root Rechte
Neustarten
reboot
oder:
shutdown -r
Auch hier mit root Rechten sudo reeboot
Hilfe holen
Den meisten Befehlen lässt sich die Option -h oder --help mitgeben, wodurch eine Kurzhilfe angezeigt wird. z. B.:
rm --help
zeigt folgende Kurzhilfe an:
Usage: rm [OPTION]... [FILE]... Remove (unlink) the FILE(s). -f, --force ignore nonexistent files and arguments, never prompt -i prompt before every removal ...
oder:
ifconfig -h
zeigt:
Usage: ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>] [add <address>[/<prefixlen>]] [del <address>[/<prefixlen>]] ...
Der man Befehl
Mit dem man Befehl können Sie das Manual eines Befehls aufrufen. Dies ist wie eine digitale Benutzeranleitung des Befehls und meist sehr ausführlich. z. B. zeigt:
man ls
Das Manual des Befehls ls (Dateien auflisten) an. Im Manual können Sie mit den Pfeiltasten hoch, runter, den Tasten pageup, pagedown und space herumnavigieren.
Mit der Taste q können Sie man wieder verlassen.
Der apropos Befehl
apropos können Sie verwenden, wenn Sie nicht genau wissen, wie ein Befehl heisst. apropos durchsucht alle man-Seiten und listet entsprechende Resultate des Suchbegriffs inkl. Kurzbeschreibungen auf. z. B. zeigt:
apropos reboot
folgende Resultate:
grub-reboot (8) - set the default boot entry for GRUB, for the next boot... halt (8) - Halt, power-off or reboot the machine poweroff (8) - Halt, power-off or reboot the machine reboot (2) - reboot or enable/disable Ctrl-Alt-Del reboot (8) - Halt, power-off or reboot the machine shutdown (8) - Halt, power-off or reboot the machine systemd-reboot.service (8) - System shutdown logic
Sie sehen auch hier werden Ihnen unterschiedliche Befehle gezeigt, mit welchen Sie Ihr Linux neustarten können.
Filesystemhierarchie (FHS)
/etc = Konfigurationsdateien und Informationsdateien des Basissystems
/home = Heimverzeichnis des Benutzers
/proc = alle Prozesse, laufende Programme
/dev = (Device Files) alle Gerätedateien
/lib = Bibliotheken
/root = Heinverzeichnis für den Bootuser
/bin = unverzichtbare Programme, diese Programme können im Gegensatz zu /sbin von allen Benutzer ausgeführt werden
/boot = enthält zum booten benötigte Dateien wie Kernel
/media = für Speichermedien
/sbin = Systemprogramme
/tmp = temporäre Dateien von Programmen
/var = nur Verzeichnisse
/mnt = kann für temporär eingehängte Partitionen verwendet werden
Dateinformationen anzeigen
Um sich Informationen über eine Datei anzeigen zu lassen, verwenden wir ls. Damit wir ausführliche Informationen über Dateiberechtigungen erhalten, benutzen wir ls -l so zeigt z. B. :
ls -l /etc/hosts
folgendes an:
-rw-r--r-- 1 root root 184 Sep 9 2016 /etc/hosts
Aus dieser Ausgabe können wir bereits folgende Dinge herauslesen:
- Der Besitzer der Datei ist der Benutzer root (das 1. root)
- Die Datei gehört zu einer Gruppe names root (das 2. root)
Dateiberechtigungen
Owner Group Other
rwx r-x r-x
421 401 401
7 5 5
Wir sehen, es gibt die Rechte:
- Lesen (r bzw. 4)
- Schreiben (w bzw. 2)
- Ausführen (x bzw. 1)
- Kein Recht (wird mit (-) angezeigt)
Befehl zum ändern von Berechtigungen:
chmod 740 /home/myfile
Benutzer erstellen
useradd rolf
Passwort zuweisen:
passwd rolf
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Nun können wir mit su zum neuen Benutzer rolf wechseln (Passwort von rolf muss nur eingegeben werden, falls Sie nicht root waren):
su rolf
Mit whoami oder id können Sie verifizieren, dass Sie nun der Benutzer rolf sind:
whoami rolf id uid=1002(rolf) gid=1002(rolf) groups=1002(rolf)
id zeigt Ihnen nicht nur den Benutzer an, sondern auch die primäre Gruppe (groups=1002(rolf)). Offensichtlich wird also beim Neuerstellen eines Benutzers jeweils auch eine Gruppe mit demselben Namen angelegt.
Mit exit können Sie sich vom Benutzer rolf wieder abmelden, Sie springen dann zurück zum Benutzer, von dem Sie zuvor auf rolf gewechselt haben (oder werden komplett ausgeloggt, falls es der erste Login war):
exit id uid=0(root) gid=0(root) groups=0(root)
Sie sehen in der Ausgabe von id auch, dass jedem Benutzer und jeder Gruppe eine eindeutige ID zugewiesen wird (uid und gid). Der Benutzer root hat immer die ID 0.
Hinweis: i.d.R. sind ID's von 0-999 Administrator- und System-/Serviceaccounts und bei 1000 beginnen die normalen Benutzer.
Benutzer löschen
Um einen Benutzer zu löschen, können Sie das Programm userdel verwenden:
userdel rolf su rolf No passwd entry for user 'rolf'
Sie sehen, nachdem Sie den Benutzer gelöscht haben, können Sie mit su nicht mehr auf diesem Benutzer wechseln, da dieser nicht mehr existiert.
Gruppen erstellen
groupadd newgroup
Um sich die Mitgliedschaft in Gruppen für einen Benutzer anzeigen zu lassen, können Sie das Programm groups verwenden:
groups rolf rolf : rolf workers
Gruppen löschen
groupdel workers
Gruppe zuweisen
Mit usermod können wir nun einen Benutzer einer Gruppe hinzufügen (z . B. kevin zur Gruppe mitarbeiter):
usermod -a -G mitarbeiter kevin
Wir können auch mehrere Gruppen gleichzeitig angeben (durch Komma getrennt), z. B. :
usermod -a -G mitarbeiter,admins robert
Dateien lesen
less /var/log/messages
Dateien verändern
nano
Geöffnet mit nano, sieht dies dann (ungefähr) so aus:
nano 2.6.3 File: /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20: fax:x:21: voice:x:22: cdrom:x:24: floppy:x:25: [ line 1/69 (1%), col 1/10 (10%), char 0/1001 (0%) ] ^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos ^X Exit ^R Read File ^\ Replace ^U Uncut Text^T To Spell ^_ Go To Line
Gespeichert wird mit CTRL + X gefolgt von SHIFT + Y und ENTER.
Befehl pwd
Identifiziert das aktuelle Verziechnis / gibt aktuelle Pfad an
cd
Verzeichnis wechseln
touch
Neues File erstellen
cp
kopieren von Files
Bsp: cp file1 file2
kopiert alles in file 1 in file 2
ip
Konfigurieren von Netzwerk Devices und Routen
▪ Anzeigen von Informationen zum Adapter eth0: ip addr show dev eth0
▪ Ip Adresse für Adapter eth0 setzen: ip addr add 192.168.50.5 dev eth1
▪ Interface aktivieren: ip link set eth0 up
▪ Routing tabelle anzeigen: ip route show
▪ Routen hinzufügen (Statische route und Default route):
ip route add 10.10.20.0/24 via 192.168.50.100 dev eth0
ip route add default via 192.168.50.10
ifconfig
Konfigurieren von Netzwerk Devices und Routen
Vorgänger / Alternative von ip
netstat
Ausgabe von Netzwerk Verbindungen und Routing Informationen
Anzeigen von aktiven Verbindungen netstat –tulnp
systemctl
Service Verwalten:
▪ Netzwerk Service neu starten systemctl restart network
system-config-networ
Grafischer Konfiguration Wizard: ▪ system-config-network
Hostnamectl
Hostname konfigurieren:
▪ Ausgabe von aktuellen Einstellungen hostnamectl
▪ Setzen von neuem Hostname hostnamectl set-hostname <name>
NetworkManager
Grafischer und CLI Wizard
▪ nmcli
ping
Verbindung zu einem System testen
▪ ping <Ziel-IP>
Config Files
Netzwerk Adapter persistent konfigurieren
▪ /etc/sysconfig/network-scripts/ifcfg-<adapter>
• Statische Konfiguration
DEVICE=eth
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.1.1.110
NETMASK=255.0.0.0
GATEWAY=10.1.1.1
• Dynamische konfiguration
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
umask
s rwx Recht (7) wäre also 0, das r-x Recht (5) demnach 2 usw. Das Ausführungsrecht (x) sollte in jedem Fall immer mindestens für den Eigentümer (u) gesetzt sein, da sonst die Verzeichnisse, die er erstellt, von ihm selbst nicht durchsucht werden könne
SUID-Bi
▪ Um dieses Bit zu setzen wird das Zeichen s oder S an der Owner-Position verwendet ▪ Wird an der Stelle vom x gesetzt: ▪ s: wenn suid-bit und x gesetzt ist ▪ S: wenn suid-bit nicht aber x gesetzt ist (unvollständig) ▪ Nur für ausführbare Dateien ▪ Ausführbare Dateien, bei denen dieses Bit gesetzt ist, werden mit den Rechten des Benutzers ausgeführt, dem die Datei gehört, anstatt mit den Rechten desjenigen Benutzers, der die Datei ausführt ▪ Z.B: bei /usr/bin/passwd (weil root Rechte notwendig sind um auf das passwd file zuzugreifen
SGID-Bit
▪ Um dieses Bit zu setzen wird das Zeichen s oder S an der Group-Position verwendet ▪ Wird an der Stelle vom x gesetzt: ▪ s: wenn sgid-bit und x gesetzt ist ▪ S: wenn sgid-bit nicht aber x gesetzt ist (unvollständig) ▪ Kann für ausführbare Dateien und Verzeichnisse verwendet werden ▪ Bei ausführbaren Dateien: Der Prozess bekommt während der Laufzeit die effektive GruppenID der Gruppe, der dieses Programm zugeordnet ist, anstatt seiner eigentlichen GruppenID ▪ Bei Verzeichnissen: Eine neu angelegte Datei in diesem Verzeichnis erhält immer die Gruppenberechtigungen des Verzeichnisses (die Gruppenberechtigung wird so NICHT auf die primäre User/Guppenzugehörigkeit gesetzt). => z.B. für gemeinsames Arbeiten an einem Projekt wenn die User unterschiedlichen Gruppen angehören
Sticky-Bit
▪ Um dieses Bit zu setzen wird das Zeichen t oder T an der others-Position verwendet ▪ Wird an der Stelle vom x gesetzt: ▪ t: wenn sticky-bit und x gesetzt ist ▪ T: wenn sticky-bit nicht aber x gesetzt ist (unvollständig) ▪ Nur für Verzeichnisse ▪ Das Löschen einer Datei in diesem Verzeichnis (mit sticky bit) ist nur möglich durch den Datei-Owner (oder durch den Verzeichnis-Owner). ▪ Das Bit wirkt rekursiv auf alle Unterverzeichnisse ▪ Z.B. für /tmp