fix(file-permissions): init
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Markus Pesch 2021-10-27 21:11:13 +02:00
parent 7d74b1a0db
commit 1579104655
Signed by: volker.raschek
GPG Key ID: 852BCC170D81A982
3 changed files with 45 additions and 35 deletions

View File

@ -23,7 +23,7 @@ verfeinern der Rechtevergabe nicht standardmäßig aus.
Linux ist als Mehrbenutzer-Betriebssystem entwickelt worden. Dies bedeutet, dass Linux ist als Mehrbenutzer-Betriebssystem entwickelt worden. Dies bedeutet, dass
mehrere Benutzer gleichzeit auf dem System Prozesse ausführen können. Dabei mehrere Benutzer gleichzeit auf dem System Prozesse ausführen können. Dabei
werden die Berechtigungen auf Dateien und Verzeichnisse klar durch den Besitzer, 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}% \subsubsection{Benutzer}%
@ -84,17 +84,18 @@ haben folgende Bedeutung:
\begin{itemize}[itemsep=0pt] \begin{itemize}[itemsep=0pt]
\item[\textbf{1. Spalte}] Name des Benutzers. \item[\textbf{1. Spalte}] Name des Benutzers.
\item[\textbf{2. Spalte}] Das Kennwort, gespeichert als Hash mit Informationen \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. definiert wurde.
\item[\textbf{3. Spalte}] Enthält die Tage seit Beginn der Unix-Zeitrechnung, \item[\textbf{3. Spalte}] Enthält die Tage seit Beginn der
wann das Kennwort zuletzt geändert wurde. \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{4. Spalte}] Tage bevor das Kennwort geändert werden muss.
\item[\textbf{5. Spalte}] Tage ab wann eine Warnung ausgegeben werden soll, \item[\textbf{5. Spalte}] Tage, ab wann eine Warnung, für das ablaufende Kennwort, ausgegeben werden soll.
dass das Kennwort abläuft.
\item[\textbf{6. Spalte}] Tage bevor das Kennwort abläuft, nachdem keine \item[\textbf{6. Spalte}] Tage bevor das Kennwort abläuft, nachdem keine
Anmeldung erfolgt ist. Anmeldung erfolgt ist.
\item[\textbf{7. Spalte}] Enthält die Tage seit Beginn der Unix-Zeitrechnung, \item[\textbf{7. Spalte}] Enthält die Tage seit Beginn der
seit dem das Kennwort abgelaufen ist. \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. \item[\textbf{8. Spalte}] Reservierte Spalte. Wird aktuell nicht verwendet.
\end{itemize} \end{itemize}
@ -122,8 +123,9 @@ und \textit{/etc/gshadow}. Die beiden Dateien sind ähnlich wie
weniger Spalten. weniger Spalten.
Die Datei \textit{/etc/group} enthält eine Spalte für den Namen der Gruppe, ob 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 ein Eintrag in \textit{/etc/gshadow} vorhanden ist, die Gruppen-ID, als auch
Benutzer, welche der Gruppe angehören. Die Benutzer werden durch ein Komma. 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 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}. 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 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 Gruppen-ID 0. Er besitzt vollen Zugriff auf das gesamte System und damit auf
alle Dateien und Einstellungen aller Benutzer. Er kann beispielsweise ohne 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 Der Benutzer root ist ein funktionaler Benutzer, mit dem sich reale Benutzer
anmelden können, um Befehle, welche einen höheren Berechtigungsgrad benötigen, 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 Das Programm \textit{sudo} führt den nachgestellten Befehl mit root
Berechtigungen aus. Mithilfe von sudo lässt sich die Verwendung von root Berechtigungen aus. Mithilfe von sudo lässt sich die Verwendung von root
Berechtigungen auf einzelne Benutzer einschränken. Für die Verwendung von Berechtigungen auf einzelne Benutzer einschränken. Für die Verwendung von
\textit{sudo} muss ein Benutzer der Gruppe \textit{wheel} unter RHEL basierenden \textit{sudo} muss ein Benutzer unter RHEL basierenden Distributionen der Gruppe
Distributionen angehören oder der Gruppe \textit{sudo} für Debian basierende \textit{wheel} angehören oder der Gruppe \textit{sudo} bei Debian basierende
Distributionen. Distributionen.
Mithilfe des Befehls \textit{visudo} lässt sich die Konfiguration von 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 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 \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 - 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 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 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. 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}% \subsubsection{Gruppe hinzufügen, bearbeiten und löschen}%
\label{sec:benutzer-gruppen-und-berechtigungen.gruppen.add-mod-rm} \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. \textit{/etc/group} die neue Gruppe mit entsprechender \textit{GID} angelegt wurde.
\item \textbf{Aufgabe 3c:} Benennen Sie die Gruppe \textit{hr} nach \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 \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 \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. 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} \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 lautet \textit{manni}. Seine Primärgruppe lautet \textit{manfred}. Als
\textit{UID} verwenden Sie \textit{2000}. \textit{UID} verwenden Sie \textit{2000}.
\item \textbf{Aufgabe 4b:} Setzen Sie das Ablaufdatum des Kennworts für den \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 Benutzer \textit{manni} auf den \textit{31. Juni} des nächsten Jahres und
passende Spalte aus der Datei \textit{/etc/shadow}. ü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 4c:} Fügen Sie den Benutzer der Gruppe \textit{wheel} hinzu.
\item \textbf{Aufgabe 4d:} Entfernen Sie den Benutzer \textit{manfred} aus der \item \textbf{Aufgabe 4d:} Entfernen Sie den Benutzer \textit{manfred} aus der
Gruppe \textit{wheel} ohne ihn dabei aus anderen Gruppen zu entfernen. 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 Unter Windows sind Grundsätzlich alle Dateien, welche auf den Suffix
\textit{.exe} enden Ausführbar. Unix-artige Systeme interpretieren Dateiendungen \textit{.exe} enden Ausführbar. Unix-artige Systeme interpretieren Dateiendungen
anders. Sie sind ausschließlich dafür da, damit Desktopmanager wie gnome, 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 cinnamon, kde, xfce oder andere erkennen, um welche Datei es sich hier handelt
und mit welchen Programmen aus einer Liste diese geöffnet werden können. 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 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 sein kann, obwohl diese nur lesbar sein sollte, damit Programme wie
masterpdfeditor von ihr lesen können. \textit{evince} oder \textit{masterpdfeditor} sie einlesen können.
% #>------------------------------------------------------------------------<# % #>------------------------------------------------------------------------<#
\subsubsection{Einfache Dateiberechtigungen}% \subsubsection{Einfache Dateiberechtigungen}%
@ -310,13 +319,13 @@ Das erste Attribut gibt den Typ der Ressource wieder. Folgende Attribute
beschreiben die Ressource. beschreiben die Ressource.
\begin{itemize}[label={},itemsep=0pt] \begin{itemize}[label={},itemsep=0pt]
\item \textbf{-:} Ist eine normale Datei \item \textbf{-:} Ist eine normale Datei.
\item \textbf{d:} \textbf{d}irectory \item \textbf{d:} \textbf{d}irectory - Verzeichnis.
\item \textbf{s:} unix \textbf{s}ocket - Beispielsweise TCP socket eines Web Servers \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 \item \textbf{l:} symbolic \textbf{l}ink - Link auf eine andere Datei oder
anderes Verzeichnis anderes Verzeichnis. Ähnlich wie Desktop-Links unter Windows.
\item \textbf{b:} \textbf{b}lock device - Festplatten \item \textbf{b:} \textbf{b}lock device - Festplatten.
\item \textbf{c:} \textbf{c}haracter device - Terminal \item \textbf{c:} \textbf{c}haracter device - Terminal.
\end{itemize} \end{itemize}
Die verbleibenden neun Attribute werden in drei Gruppen gesplittet. Jede Gruppe 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] \begin{itemize}[label={},itemsep=0pt]
\item \textbf{r:} \textbf{r}ead - Von Ressource lesen oder Verzeichnisinhalt \item \textbf{r:} \textbf{r}ead - Von Ressource lesen oder Verzeichnisinhalt
auflisten auflisten.
\item \textbf{w:} \textbf{w}rite - Ressource beschreiben oder \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 \item \textbf{x:} e\textbf{x}ecute - Programm ausführen oder in das
Verzeichnis hineinwechseln Verzeichnis hineinwechseln.
\end{itemize} \end{itemize}
\begin{itemize}[label={},itemsep=0pt] \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. geändert werden. Dazu sind in GNU Core Utilities folgende Programme enthalten.
\begin{itemize}[label={},itemsep=0pt] \begin{itemize}[label={},itemsep=0pt]
\item \textit{chown:} Ändert den Besitzer einer Ressource \item \textit{chown:} Ändert den Besitzer einer Ressource.
\item \textit{chgrp:} Ändert die Gruppe einer Ressource \item \textit{chgrp:} Ändert die Gruppe einer Ressource.
\item \textit{chmod:} Ändert die Berechtigung auf eine Ressource für alle \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} \end{itemize}
Das Ändern des Besitzers per \textit{chown} kann durch \textit{chown user 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 einem ändern kann dies durch \textit{chown} umgesetzt werden. Dabei muss der
Besitzer als auch die Gruppe getrennt durch einen Doppelpunkt angegeben werden: Besitzer als auch die Gruppe getrennt durch einen Doppelpunkt angegeben werden:
\textit{chown user:group ressource}. Alternativ zu den Namen kann auch die \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 Die Dateiberechtigungen lassen sich per \textit{chmod} anpassen. Das Programm
\textit{chmod} unterstützt die Symbolische- als auch die Oktal-Notation, um \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. in der Attributzeichenkette ersetzt.
\begin{itemize}[label={},itemsep=0pt] \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. \textit{setuid} gesetzt ist.
\end{itemize} \end{itemize}

View File

@ -411,6 +411,7 @@
% \include{./examples/examples} % \include{./examples/examples}
\include{./chapters/01-ssh} \include{./chapters/01-ssh}
\include{./chapters/02-file-permissions}
% \include{./chapters/01-network} % \include{./chapters/01-network}
% \include{./chapters/02-dns} % \include{./chapters/02-dns}