fix(file-permissions): init
continuous-integration/drone/push Build is passing Details

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
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}

View File

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