Linux Grundlagen SW2 26.09.2024 PDF

Document Details

PeerlessConnemara5888

Uploaded by PeerlessConnemara5888

Hochschule Luzern

2024

Tags

Linux commands file system user management computer science

Summary

This document provides a summary of Linux fundamental concepts such as file system, user management, and permissions using commands like ls, pwd, mkdir, cd, rmdir, and mv. It includes examples, explanations, and practical exercises.

Full Transcript

# Grundlagen Digital Engineering SW2 26.09.2024 ## Linux Grundlagen - Anzeigern - Verzeichnisse wechseln, navigieren - Erstellen, löschen - Kopieren, umbenennen - Root Verzeichnis - System Verzeichnisse - Dateien: cat, less, more - Benutzerverwaltung - Log Dateien - Berechtigungen ## pwd and ls J...

# Grundlagen Digital Engineering SW2 26.09.2024 ## Linux Grundlagen - Anzeigern - Verzeichnisse wechseln, navigieren - Erstellen, löschen - Kopieren, umbenennen - Root Verzeichnis - System Verzeichnisse - Dateien: cat, less, more - Benutzerverwaltung - Log Dateien - Berechtigungen ## pwd and ls Jeder Benutzer hat ein eigenes Arbeitsverzeichnis. Dieses befindet sich normalerweise unterhalb von `/home/` und kann mit dem Befehl `pwd` (print working directory) angezeigt werden: ``` pi@raspy:~ $ pwd /home/pi ``` Der Befehl `ls` (list) dient zum Anzeigen von Dateien und Verzeichnissen: ``` pi@raspy:~ $ ls Desktop MagPi Documents Music Downloads oldconffiles Pictures Public python_games Templates wpahash thinclient_drives Videos ``` Mittels `ls -1` werden die Einträge untereinander dargestellt. - Was für Informationen werden zusätzlich ausgegeben? - Wie können versteckte Dateien ausgegeben werden? ## mkdir und cd Mit dem Befehl `mkdir` (make directory) kann ein Verzeichnis angelegt werden. ``` pi@raspy:~ $ mkdir HighSpeedTrain ``` Mit `cd` (change directory) kann in ein Verzeichnis navigiert werden: - `cd HighSpeedTrain` wechselt ins Unterverzeichnis `HighSpeedTrain` ``` pi@raspy:~ $ cd HighSpeedTrain pi@raspy:~/HighSpeedTrain $ ``` - `cd ..` wechselt ins übergeordnete Verzeichnis ``` pi@raspy:~/HighSpeedTrain $ cd .. pi@raspy:~ $ ``` - `cd` ohne Parameter wechselt ins Home-Verzeichnis (Arbeitsverzeichnis) ``` pi@raspy:~/HighSpeedTrain $ cd pi@raspy:~ $ ``` ## rmdir und rm Mittels `rmdir` (remove directory) kann ein leeres Verzeichnis wieder gelöscht werden: ``` pi@raspy:~ $ rmdir HighSpeedTrain/ ``` Falls das Verzeichnis nicht leer ist, wird eine Fehlermeldung ausgegeben: ``` pi@raspy:~ $ rmdir HighSpeedTrain/ rmdir: failed to remove 'HighSpeedTrain': Directory not empty ``` In diesem Fall kann der Befehl `rm -r` (remove recursive) verwendet werden: ``` pi@raspy:~ $ rm -r HighSpeedTrain/ ``` **Achtung:** Achte auf den korrekten Pfad beim `rm -r`! Insbesondere, wenn man `sudo` verwendet. Ansonsten starten Sie schon mal den `Win32DiskImager`. ## mv Ein Verzeichnis kann mit dem Befehl `mv` (move) umbenannt werden: ``` pi@raspy:~ $ mv HighSpeedTrain/ SuperHighSpeedTrain ``` `mv` dient auch zum Verschieben: ``` pi@raspy:~ $ mv SuperHighSpeedTrain /tmp/ ``` Ein Pfad kann relativ oder absolute angegeben werden: - **Absoluter Pfad:** ``` pi@raspy:~ $ mv /home/pi/HighSpeedTrain/ SuperHighSpeedTrain ``` - **Relativer Pfad:** ``` pi@raspy:~ $ mv HighSpeedTrain/ SuperHighSpeedTrain ``` ## Übung - Ausprobieren: `cd`, `ls`, `mv`, `rm`, `mkdir` - Erstellen eines Verzeichnisses: `mkdir` - Erstellen einer leeren Datei: `touch` - Umbenennen von Dateien und Verzeichnissen - Löschen von Dateien und Verzeichnissen **Aufgabe:** Probiere die verschiedenen Befehle aus. ## Root Verzeichnis In Linux gibt es keine Laufwerksbuchstaben wie in Windows. Das oberste Verzeichnis wird Wurzelverzeichnis oder root directory genannt und mit `/` angegeben. ``` pi@raspy:/ $ ls bin debootstrap etc lib media opt root sbin sys usr boot lost+found dev home mnt proc run srv tmp var ``` - [image of a file system diagram] ## Wichtige Root Verzeichnisse | Verzeichnis | Bedeutung | |---|---| | bin | Programme die wahrend dem Systemstart verfügbar sind (user, root) | | boot | beinhaltet Dateien (Kernel) zum Staren des Systems | | dev | Geratedateien | | etc | Konfigurationsdateien | | home | Benutzerverzeichnisse werden untrhalb von `/home` abgelegt | | lib | Bibliotheken | | lost+found | Teilweise wiederhergestellte Dateien | | media | Verzeichnis zum einbinden von CD-ROMs, USB-Sticks etc. | | mnt | Weiteres Verzeichnis zum Einbinden von Laufwerken (für Admin) | | opt | Für Softwarepakete die nicht von der Distribution stammen | | proc | Virtuelles Verzeichnis mit Infos vom Kernel | | root | Benutzerverzeichnis vom Benutzer root | | run | Beinhaltet Laufzeitdaten von Programmen & Diensten | | sbin | Programme die während dem Systemstart verfgbar sind (root) | | srv | Selten gebrauchtfür Daten von Webserver, FTP-Server etc. | | sys | Virtuelles Verzeichnis mit Infos zur Hardware | | tmp | Temporäres Verzeichnis, wird beim Systemstart gelöscht | | usr | Beinhaltet installierte Software | | var | Verzeichnisfür Dateien die gelesen und geschrieben werden | ## cat, less and more Mit dem Befehl `cat`, `less` und `more` können Dateien auf dem Bildschirm ausgegeben werden: ``` pi@raspy:/ $ cat /usr/share/common-licenses/GPL Public License instead of this License. But first, please read <http://www.gnu.org/philosophy/why-not-lgpl.html>. pi@raspy:/ $ ``` Mittels `less` kann mit Page-Up und Page-Down geblättert werden: ``` pi@raspy:/ $ less /usr/share/common-licenses/GPL GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone... ``` ## cp, mv und rm Mit dem Befehl `cp` (copy) kann eine Datei kopiert werden. Das Tilde-Zeichen steht für das Homeverzeichnis des aktuellen Benutzers: ``` pi@raspy:/ $ cp /usr/share/common-licenses/GPL ~/ ``` Mittels `mv` (move) kann eine Datei in ein anderes Verzeichnis verschoben werden: ``` pi@raspy:~ $ mv GPL HighSpeedTrain/ ``` Oder auch umbenannt werden: ``` pi@raspy:~ $ mv GPL GPL-License ``` Eine Datei kann mit dem Befehl `rm` (remove) gelöscht werden: ``` pi@raspy:~ $ rm GPL ``` ## Logdatein Logdateien werden in Linux im Verzeichnis `/var/log/` abgelegt: | Logfile | Bedeutung | |---|---| | auth.log | Alle Loginversuche über Konsole, SSH etc. | | boot.log | Zeigt Informationen zu Diensten während dem Systemstart | | btmp | Logfile für den Befehl last | | daemon.log | Viele Dienste schreiben her Logdaten | | dpkg.log | Protokoll der Paketverwaltung | | kern.log | Meldungen des Kernels | | lastlog | Logfile für den Befehl lastlog | | samba | Meldungen vom Samba Server | | syslog | Meldungen vom Syslog Dienst | - `/etc/rsyslog.conf` enthält Regeln: Was wird in welches Log geschrieben - `dmesg`: drucke Meldungen des Kernel Ring Buffers mit Zeitstempel - `sudo raspi-config` um Zeitzone zu ändern ## Übung: Linux Kommandos - `lastlog`: auflisten, wann sich zuletzt ein Benutzer eingeloggt hat - `last`: zeigt eine Liste, wer sich zuletzt eingeloogt hat. - Mit `zless` (anstatt `less`) kann auch eine komprimierte Datei angeschaut werden. - Mit `tail -f` (follow) kann meine Datei laufend überwachen. **Aufgabe:** Versuche folgende Informationen heruzufinden: - Wie viel Platz ist auf der SD Karte (Disk) noch frei? - Wie viel Speicher (Memory) ist noch frei? - Wo befindet sich das Programm `mkdir? Wo cd? - Wie findet man alle Dateien auf dem System, die 'help' heissen? ## Benutzer erstellen Neuer Benutzer anlegen: `adduser` ``` pi@raspy:~ $ sudo adduser pingu ``` Anschliessend werden Passwort, Name und weitere optionale Informationen abgefragt: ``` Adding user 'pingu' Adding new group 'pingu' (1001) Adding new user 'pingu' (1001) with group 'pingu' ... Creating home directory '/home/pingu' Copying files from '/etc/skel' Enter new UNIX password: Retype new UNIX password: ... passwd: password updated successfully Changing the user information for pingu ... Enter the new value, or press ENTER for the default Full Name (): Pingu Tux Room Number [: Work Phone [: Home Phone [: Other [: Is the information correct? [Y/n] Y ``` ## Benutzerinformationen - Für den neu erstellten Benutzer wird ein Home-Verzeichnis erstellt - `/etc/skel` beinhaltet ein Template, d.h. alle Dateien aus diesem Verzeichnis werden ins Home-Verzeichnis eines neuen Benutzers kopiert - In der Datei `/etc/passwd` wird der Benutzer erfasst sowie - In der Datei `/etc/shadow` das Passwort als Hash ## Übung zu Benutzerinformationen - Erstelle einen neuen Benutzer - Untersuche die Dateien `/etc/passwd` sowie `/etc/shadow` - Vergleiche `/etc/skel` mit `/home/<user>` - Kann man sich mit dem neuen Benutzer über SSH einloggen? Gleichzeitig während der Benutzer `pi` eingeloggt ist? - Wie kann man sich in der Konsole (eingeloggt als pi) als neuen Benutzer einloggen? - Mit welchem Befehl kann man herausfinden, unter welchem Namen man eingeloggt ist? ## Benutzer löschen Mit dem Befehl `deluser` kann ein Benutzer gelöscht werden: ``` pi@raspy:~ # deluser pingu ``` Sein Home-Verzeichnis wiird dabei nicht gelöscht. Soll dies auch geschehen, kann folgender Befehl verwendet werden: ``` pi@raspy:~ # deluser pingu --remove-home ``` Sollen das Home-Verzeichnis und alle weiteren Dateiendes Benutzers ausserhalb des Home-Verzeichnisses gelöscht werden, kann folgender Befehl verwendet werden: ``` pi@raspy:~ # deluser pingu --remove-all-files ``` ## Benutzer mit Administrationsrechten Mit dem Befehl `gpasswd` und `-a` kann ein Benutzer einer Gruppe hinzugefügt werden: ``` pi@raspy:~ # sudo gpasswd -a pingu sudo ``` Mit `-d` kann ein Benutzer wieder entfernt werden: ``` pi@raspy:~ # gpasswd -d pingu sudo ``` ### Übung: - Versuche mit dem neuen Admin-Benutzer einen Befehl mittels `sudo` auszuführen. Was fällt Ihnen auf? - Untersuche die Datei `/etc/group` - Was für Informationen liefern die Befehle: `groups`, `groups pi`, `id` ## Linux Berechtigungssystem ``` pi@raspy:~ $ ls -la -rw-r--r-- 1 pi pi 3523 Jun 27 00:17 .bashrc -rw------- 1 pi pi 980 Oct 3 18:24 .bash_history drwx------ 9 pi pi 4096 Oct 3 05:46 .config drwxr-xr-x 2 pi pi 4096 Jun 27 01:23 Downloads ``` - Lesen (read), Abkürzung 'r' - Schreiben (write), Abkürzung 'w' - Ausführen (execute), Abkürzung 'x' - **User:** Berechtigungen für den Besitzer der Datei - **Group:** Berechtigungen für eine ausgewählte Benutzergruppe - **Other:** Berechtigungen für alle anderen - [image of a file system diagram] ## Linux Berechtigungssystem ``` shum@sol:~$ ls -1 total 20 drwx---- 2 shum staff 4096 Jan 16 22:04 Mail drwx---- 3 shum staff 4096 Jan 16 14:15 csc128 drwxr-xr-x 2 shum staff 4096 Jan 13 16:42 public drwxr-xr-x 2 shum staff 4096 Jan 16 14:07 public_html -rw-r---- 1 shum staff 628 Jan 15 20:04 verse ``` ## Linux Berechtigungssystem Die Berechtigung kann mittels `chmod` geaendert werden. Beispiel: ``` pi@raspy:~ $ chmod ug+rw myfile.txt ``` Der erste Parameter definiert die zu ändernden Rechte: 1. `u` (user), `g` (group), `o` (other) einzeln, eine Kombination oder `a` (all) für alle. 2. `+` um Rechte hinzuzufügen, `-` um Rechte zu entfernen, oder `=` um die Berechtigung zu überschreiben. 3. `r`, `w`, `x` einzeln oder eine Kombination davon In diesem Beispiel wird dem Besitzer und der Gruppe Schreib- und Leserechte der Datei myfile.txt gewährt. Alternativ kann auch direkt ein binär codierter Wert gesetzt werden: ``` pi@raspy:~ $ chmod 753 myfile.txt pi@raspy:~ $ ls -l -rwxr-x-wx 1 pi pi 0 Oct 3 20:17 myfile.txt ```

Use Quizgecko on...
Browser
Browser