From 1579104655900d3f9a2ab7dd57048be553d94071 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Wed, 27 Oct 2021 21:11:13 +0200 Subject: [PATCH] fix(file-permissions): init --- ...ermissions.tex => 02-file-permissions.tex} | 79 +++++++++++-------- chapters/{02-dns.tex => 04-dns.tex} | 0 index.tex | 1 + 3 files changed, 45 insertions(+), 35 deletions(-) rename chapters/{04-file-permissions.tex => 02-file-permissions.tex} (93%) rename chapters/{02-dns.tex => 04-dns.tex} (100%) diff --git a/chapters/04-file-permissions.tex b/chapters/02-file-permissions.tex similarity index 93% rename from chapters/04-file-permissions.tex rename to chapters/02-file-permissions.tex index 3b609bd..3edbf31 100644 --- a/chapters/04-file-permissions.tex +++ b/chapters/02-file-permissions.tex @@ -23,7 +23,7 @@ verfeinern der Rechtevergabe nicht standardmäßig aus. Linux ist als Mehrbenutzer-Betriebssystem entwickelt worden. Dies bedeutet, dass mehrere Benutzer gleichzeit auf dem System Prozesse ausführen können. Dabei werden die Berechtigungen auf Dateien und Verzeichnisse klar durch den Besitzer, -als auch durch die Gruppe, welche als mehrere Benutzern bestehen kann, geregelt. +als auch durch die Gruppe, welche mehrere Benutzer zusammenfasst, geregelt. % #>------------------------------------------------------------------------<# \subsubsection{Benutzer}% @@ -84,17 +84,18 @@ haben folgende Bedeutung: \begin{itemize}[itemsep=0pt] \item[\textbf{1. Spalte}] Name des Benutzers. \item[\textbf{2. Spalte}] Das Kennwort, gespeichert als Hash mit Informationen - zum Hash.-Algorithmus. Der Wert \textit{!!} bedeutet, dass kein Kennwort + zum Hash.-Algorithmus. Der Wert \textit{!} bedeutet, dass kein Kennwort definiert wurde. - \item[\textbf{3. Spalte}] Enthält die Tage seit Beginn der Unix-Zeitrechnung, - wann das Kennwort zuletzt geändert wurde. + \item[\textbf{3. Spalte}] Enthält die Tage seit Beginn der + \href{https://de.wikipedia.org/wiki/Unixzeit}{Unix-Zeitrechnung}, wann das + Kennwort zuletzt geändert wurde. \item[\textbf{4. Spalte}] Tage bevor das Kennwort geändert werden muss. - \item[\textbf{5. Spalte}] Tage ab wann eine Warnung ausgegeben werden soll, - dass das Kennwort abläuft. + \item[\textbf{5. Spalte}] Tage, ab wann eine Warnung, für das ablaufende Kennwort, ausgegeben werden soll. \item[\textbf{6. Spalte}] Tage bevor das Kennwort abläuft, nachdem keine Anmeldung erfolgt ist. - \item[\textbf{7. Spalte}] Enthält die Tage seit Beginn der Unix-Zeitrechnung, - seit dem das Kennwort abgelaufen ist. + \item[\textbf{7. Spalte}] Enthält die Tage seit Beginn der + \href{https://de.wikipedia.org/wiki/Unixzeit}{Unix-Zeitrechnung}, seit dem das + Kennwort abgelaufen ist. \item[\textbf{8. Spalte}] Reservierte Spalte. Wird aktuell nicht verwendet. \end{itemize} @@ -122,8 +123,9 @@ und \textit{/etc/gshadow}. Die beiden Dateien sind ähnlich wie weniger Spalten. Die Datei \textit{/etc/group} enthält eine Spalte für den Namen der Gruppe, ob -ein Eintrag in \textit{/etc/gshadow} vorhanden ist, die Gruppen-ID, als auch alle -Benutzer, welche der Gruppe angehören. Die Benutzer werden durch ein Komma. +ein Eintrag in \textit{/etc/gshadow} vorhanden ist, die Gruppen-ID, als auch +alle Benutzer, welche der Gruppe angehören. Die Benutzer werden durch ein Komma +getrennt aufgelistet. Die Datei \textit{/etc/gshadow} enthält noch weniger Informationen. Die ersten drei Spalten sind identisch zu den Spalten aus der Datei \textit{/etc/shadow}. @@ -144,7 +146,8 @@ Die letzte Spalte enthält Benutzer, welcher das Kennwort ändern dürfen. Der Benutzer root besitzt auf allen Unix-artigen Systemen die User-ID und Gruppen-ID 0. Er besitzt vollen Zugriff auf das gesamte System und damit auf alle Dateien und Einstellungen aller Benutzer. Er kann beispielsweise ohne -Einschränkungen auf alle angeschlossenen Geräte unter \textit{/dev} zugreifen. +Einschränkungen auf alle angeschlossenen Geräte unter \textit{/dev}, als auch +die Heimatverzeichnisse der Benutzer unter \textit{/home}, zugreifen. Der Benutzer root ist ein funktionaler Benutzer, mit dem sich reale Benutzer anmelden können, um Befehle, welche einen höheren Berechtigungsgrad benötigen, @@ -159,8 +162,8 @@ diesem Grund und anderen Gründen wurde das Programm \textit{sudo} entwickelt. Das Programm \textit{sudo} führt den nachgestellten Befehl mit root Berechtigungen aus. Mithilfe von sudo lässt sich die Verwendung von root Berechtigungen auf einzelne Benutzer einschränken. Für die Verwendung von -\textit{sudo} muss ein Benutzer der Gruppe \textit{wheel} unter RHEL basierenden -Distributionen angehören oder der Gruppe \textit{sudo} für Debian basierende +\textit{sudo} muss ein Benutzer unter RHEL basierenden Distributionen der Gruppe +\textit{wheel} angehören oder der Gruppe \textit{sudo} bei Debian basierende Distributionen. Mithilfe des Befehls \textit{visudo} lässt sich die Konfiguration von @@ -192,7 +195,7 @@ Befehl den Namen des Benutzers an, wessen Kennwort man ändern möchte. Das Programm \textit{passwd} ändert dem entsprechend die Zeile in \textit{/etc/shadow} für den Benutzer, für welchen das Passwort geändert werden -soll. +soll, ab. Nachteil von \textit{passwd} ist, dass es interaktiv bedient werden muss - sprich, mit \textit{passwd} ist es nicht möglich Kennwörter von Benutzern per @@ -203,6 +206,10 @@ Allerdings möchte man nicht nur das Kennwort eines Benutzers ändern können, sondern auch wann das Kennwort ablaufen soll oder ab wann das System eine Warnung ausgeben soll. Mit Hilfe des Programms \textit{chage} ist dies möglich. +\begin{bashcode} + sudo chage --list ${USER} +\end{bashcode} + % #>------------------------------------------------------------------------<# \subsubsection{Gruppe hinzufügen, bearbeiten und löschen}% \label{sec:benutzer-gruppen-und-berechtigungen.gruppen.add-mod-rm} @@ -227,10 +234,10 @@ gestellt. \textit{/etc/group} die neue Gruppe mit entsprechender \textit{GID} angelegt wurde. \item \textbf{Aufgabe 3c:} Benennen Sie die Gruppe \textit{hr} nach \textit{dev} für \textit{development} um und überprüfen Sie, ob sich der Name - der Gruppe in der Datei \textit{/etc/group} geändert hat + der Gruppe in der Datei \textit{/etc/group} geändert hat. \item \textbf{Aufgabe 3d:} Ändern Sie die \textit{GID} auf 3000 und überprüfen Sie, ob diese sich in der Datei \textit{/etc/group} geändert hat. - \item \textbf{Aufgabe 3e:} Löschen Sie die Gruppe \textit{dev} + \item \textbf{Aufgabe 3e:} Löschen Sie die Gruppe \textit{dev}. \end{itemize} % #>------------------------------------------------------------------------<# @@ -253,8 +260,9 @@ werden. Auf folgende Befehle kann zurück gegriffen werden. lautet \textit{manni}. Seine Primärgruppe lautet \textit{manfred}. Als \textit{UID} verwenden Sie \textit{2000}. \item \textbf{Aufgabe 4b:} Setzen Sie das Ablaufdatum des Kennworts für den - Benutzer \textit{manni} auf den \textit{31. Juni 2021} und überprüfen Sie die - passende Spalte aus der Datei \textit{/etc/shadow}. + Benutzer \textit{manni} auf den \textit{31. Juni} des nächsten Jahres und + überprüfen Sie die passende Spalte aus der Datei \textit{/etc/shadow} oder + nutzen Sie alternativ \textit{chage} oder \textit{passwd} zur Überprüfung. \item \textbf{Aufgabe 4c:} Fügen Sie den Benutzer der Gruppe \textit{wheel} hinzu. \item \textbf{Aufgabe 4d:} Entfernen Sie den Benutzer \textit{manfred} aus der Gruppe \textit{wheel} ohne ihn dabei aus anderen Gruppen zu entfernen. @@ -275,12 +283,13 @@ werden. Auf folgende Befehle kann zurück gegriffen werden. Unter Windows sind Grundsätzlich alle Dateien, welche auf den Suffix \textit{.exe} enden Ausführbar. Unix-artige Systeme interpretieren Dateiendungen anders. Sie sind ausschließlich dafür da, damit Desktopmanager wie gnome, -cinnamon, kde, xfce oder andere erkennen, um welche Datei es sich hier handel -und mit welchen Programmen aus einer Liste diese geöffnet werden können. +cinnamon, kde, xfce oder andere erkennen, um welche Datei es sich hier handelt +und mit welchen Programmen, aus einer definierten Liste, diese geöffnet werden +können. Dies bedeutet, dass auch die PDF-Datei \texttt{Aufgabensammlung.pdf} ausführbar -sein kann, obwohl diese nur lesbar sein sollte, damit Programme wie evince oder -masterpdfeditor von ihr lesen können. +sein kann, obwohl diese nur lesbar sein sollte, damit Programme wie +\textit{evince} oder \textit{masterpdfeditor} sie einlesen können. % #>------------------------------------------------------------------------<# \subsubsection{Einfache Dateiberechtigungen}% @@ -310,13 +319,13 @@ Das erste Attribut gibt den Typ der Ressource wieder. Folgende Attribute beschreiben die Ressource. \begin{itemize}[label={},itemsep=0pt] - \item \textbf{-:} Ist eine normale Datei - \item \textbf{d:} \textbf{d}irectory + \item \textbf{-:} Ist eine normale Datei. + \item \textbf{d:} \textbf{d}irectory - Verzeichnis. \item \textbf{s:} unix \textbf{s}ocket - Beispielsweise TCP socket eines Web Servers \item \textbf{l:} symbolic \textbf{l}ink - Link auf eine andere Datei oder - anderes Verzeichnis - \item \textbf{b:} \textbf{b}lock device - Festplatten - \item \textbf{c:} \textbf{c}haracter device - Terminal + anderes Verzeichnis. Ähnlich wie Desktop-Links unter Windows. + \item \textbf{b:} \textbf{b}lock device - Festplatten. + \item \textbf{c:} \textbf{c}haracter device - Terminal. \end{itemize} Die verbleibenden neun Attribute werden in drei Gruppen gesplittet. Jede Gruppe @@ -329,11 +338,11 @@ Dabei haben die Attribute folgende Bedeutung: \begin{itemize}[label={},itemsep=0pt] \item \textbf{r:} \textbf{r}ead - Von Ressource lesen oder Verzeichnisinhalt - auflisten + auflisten. \item \textbf{w:} \textbf{w}rite - Ressource beschreiben oder - Verzeichnisinhalt ändern (hinzufügen, umbenennen, löschen) + Verzeichnisinhalt ändern (hinzufügen, umbenennen, löschen). \item \textbf{x:} e\textbf{x}ecute - Programm ausführen oder in das - Verzeichnis hineinwechseln + Verzeichnis hineinwechseln. \end{itemize} \begin{itemize}[label={},itemsep=0pt] @@ -360,10 +369,10 @@ Die Berechtigungen auf Ressourcen als auch der Besitzer bzw. die Gruppe kann geändert werden. Dazu sind in GNU Core Utilities folgende Programme enthalten. \begin{itemize}[label={},itemsep=0pt] - \item \textit{chown:} Ändert den Besitzer einer Ressource - \item \textit{chgrp:} Ändert die Gruppe einer Ressource + \item \textit{chown:} Ändert den Besitzer einer Ressource. + \item \textit{chgrp:} Ändert die Gruppe einer Ressource. \item \textit{chmod:} Ändert die Berechtigung auf eine Ressource für alle - anderen Benutzer, welche weder als Besitzer noch Mitglieder der Gruppe sind + anderen Benutzer, welche weder als Besitzer noch Mitglieder der Gruppe sind. \end{itemize} Das Ändern des Besitzers per \textit{chown} kann durch \textit{chown user @@ -372,7 +381,7 @@ ressource} geändert werden. Gleiches gilt für das Ändern der Gruppe: einem ändern kann dies durch \textit{chown} umgesetzt werden. Dabei muss der Besitzer als auch die Gruppe getrennt durch einen Doppelpunkt angegeben werden: \textit{chown user:group ressource}. Alternativ zu den Namen kann auch die -\textit{UID} bzw. für die Gruppe die \textit{GID} verwendet werden. +\textit{UID} bzw. die \textit{GID}, für den Name der Gruppe, verwendet werden. Die Dateiberechtigungen lassen sich per \textit{chmod} anpassen. Das Programm \textit{chmod} unterstützt die Symbolische- als auch die Oktal-Notation, um @@ -461,7 +470,7 @@ Attribut \textit{x} durch ein \textit{s} unter den Berechtigungen des Besitzers in der Attributzeichenkette ersetzt. \begin{itemize}[label={},itemsep=0pt] - \item \textbf{Aufgabe 7a:} Überprüfe, ob für das Programm \textit{/bin/passwd} + \item \textbf{Aufgabe 7a:} Überprüfen Sie, ob für das Programm \textit{/bin/passwd} \textit{setuid} gesetzt ist. \end{itemize} diff --git a/chapters/02-dns.tex b/chapters/04-dns.tex similarity index 100% rename from chapters/02-dns.tex rename to chapters/04-dns.tex diff --git a/index.tex b/index.tex index 1c5bde9..f927a51 100644 --- a/index.tex +++ b/index.tex @@ -411,6 +411,7 @@ % \include{./examples/examples} \include{./chapters/01-ssh} + \include{./chapters/02-file-permissions} % \include{./chapters/01-network} % \include{./chapters/02-dns}