Harting Development

Verzeichnisse in Linux erstellen: Eine Schritt-für-Schritt-Anleitung

Lukas Fuchs vor 7 Monaten in  Fehlerbehebung 3 Minuten Lesedauer

Welcher Befehl wird verwendet, um Verzeichnisse in Linux zu erstellen?

Als Linux-Benutzer wirst du häufig Verzeichnisse (auch Ordner genannt) erstellen müssen, um deine Dateien zu organisieren und zu verwalten. Der Befehl, den du zum Erstellen von Verzeichnissen benötigst, ist mkdir.

Verschiedene Schreibweisen von mkdir

  • mkdir: Erstellt ein einzelnes Verzeichnis.
  • mkdir -p: Erstellt verschachtelte Verzeichnisse, falls sie noch nicht vorhanden sind.
  • mkdir -m: Erstellt Verzeichnisse mit angegebenen Berechtigungen.
  • mkdir -v: Gibt detaillierte Informationen über den Erstellungsprozess aus.

Verschiedene Möglichkeiten zur Verwendung des mkdir-Befehls

Erstellen eines einzelnen Verzeichnisses:

Erstelle ein einzelnes Verzeichnis mit dem Befehl mkdir, gefolgt vom Namen des Verzeichnisses:

mkdir verzeichnisname

Erstellen mehrerer Verzeichnisse:

Erstelle mehrere Verzeichnisse gleichzeitig, indem du die Verzeichnisnamen durch Leerzeichen trennst:

mkdir verzeichnisname1 verzeichnisname2 verzeichnisname3

Festlegen des Anfangsverzeichnisses:

Lege mit der Option -C oder --change-directory ein anderes Verzeichnis als das aktuelle Anfangsverzeichnis fest:

mkdir -C /pfad/zum/verzeichnis verzeichnisname

Erstellen von Verzeichnissen relativ zum gegebenen Pfad:

Erstelle Verzeichnisse relativ zum angegebenen Pfad, indem du den Pfad vor den Verzeichnisnamen angibst:

mkdir /pfad/zum/verzeichnis/verzeichnisname

Unterdrücken von Fehlermeldungen:

Unterdrücke Fehlermeldungen, wenn ein Verzeichnis bereits existiert, mit der Option -p oder --parents:

mkdir -p /pfad/zum/verzeichnis/verzeichnisname

Verwendung von Optionen mit mkdir zum Erstellen von Verzeichnissen mit bestimmten Berechtigungen

Der mkdir-Befehl bietet eine Reihe von Optionen, mit denen du Berechtigungen für die neu erstellten Verzeichnisse festlegen kannst:

Berechtigungsmodi

  • -m, --mode: Diese Option ermöglicht es dir, die Berechtigungen für das Verzeichnis explizit festzulegen. Du kannst entweder einen oktalen Wert (z. B. 755) oder eine symbolische Berechtigung (z. B. rwxrwxr-x) angeben.
  • -a, -- Abteilung: Erstellt ein neues Verzeichnis mit den gleichen Berechtigungen wie das übergeordnete Verzeichnis.

ACL-Optionen

  • -Z, --context=KONTEXT: Legt die Kontext-ACL für das neue Verzeichnis fest. Die Kontext-ACL speichert die Standard-ACL-Einträge, die für alle neu erstellten Dateien und Unterverzeichnisse innerhalb des Verzeichnisses gelten.

Sonstige Optionen

  • -v, --verbose: Gibt alle erstellten Verzeichnisse aus.
  • -h, --help: Zeigt die Hilfeinformationen für den mkdir-Befehl an.

Beispiele

Beispiel 1: Erstellen eines Verzeichnisses mit oktalen Berechtigungen

mkdir -m 755 neuesverzeichnis

Dies erstellt das Verzeichnis neuesverzeichnis mit den Berechtigungen rwxrwxr-x (755).

Beispiel 2: Erstellen eines Verzeichnisses mit symbolischen Berechtigungen

mkdir -m rwxrwxr-x neuesverzeichnis

Dies erstellt das Verzeichnis neuesverzeichnis mit den gleichen Berechtigungen wie das Beispiel oben.

Beispiel 3: Erstellen eines Verzeichnisses mit denselben Berechtigungen wie das übergeordnete Verzeichnis

mkdir -a neuesverzeichnis

Dies erstellt das Verzeichnis neuesverzeichnis mit den gleichen Berechtigungen wie das Verzeichnis, in dem es erstellt wird.

Verwendung von mkdir -p zum Erstellen verschachtelter Verzeichnisse

Möchtest du eine Verzeichnisstruktur mit mehreren Ebenen erstellen, kann der Befehl mkdir -p hilfreich sein.

Vorteile von mkdir -p

  • Unterstützt rekursives Erstellen: Erstellt automatisch alle erforderlichen übergeordneten Verzeichnisse, falls sie nicht vorhanden sind.
  • Idempotent: Kann mehrmals ausgeführt werden, ohne Fehler zu erzeugen, wenn die Verzeichnisse bereits existieren.

Syntax

mkdir -p [OPTIONEN] VERZEICHNIS

Optionen

  • -m, --mode=MODUS: Legt die Berechtigungen für neu erstellte Verzeichnisse fest (z. B. -m 755).

Verwendung

Wenn du eine Verzeichnisstruktur mit verschachtelten Verzeichnissen erstellen möchtest, kannst du den folgenden Befehl verwenden:

mkdir -p VERZEICHNIS1/UNTERVERZEICHNIS1/UNTERUNTERVERZEICHNIS1

Dies erstellt die folgenden Verzeichnisse, falls sie noch nicht vorhanden sind:

  • VERZEICHNIS1
  • VERZEICHNIS1/UNTERVERZEICHNIS1
  • VERZEICHNIS1/UNTERVERZEICHNIS1/UNTERUNTERVERZEICHNIS1

Berechtigungen

Standardmäßig erbt ein neues Verzeichnis die Berechtigungen seines übergeordneten Verzeichnisses. Du kannst die Berechtigungen jedoch mit der Option -m festlegen.

Beispiel:

mkdir -p -m 775 VERZEICHNIS1/UNTERVERZEICHNIS1

Dies erstellt ein Verzeichnis UNTERVERZEICHNIS1 mit Berechtigungen 775 (Leserechte für alle, Schreibrechte für Besitzer und Gruppe).

Vorhandene Verzeichnisse

Wenn die angegebenen Verzeichnisse bereits existieren, wird der Befehl mkdir -p einfach ignoriert und erzeugt keinen Fehler. Dies kann nützlich sein, wenn du sicherstellen möchtest, dass die Verzeichnisstruktur vorhanden ist, ohne unerwünschte Verzeichnisse zu erstellen.

Verwendung von Subshell-Techniken mit mkdir

Manchmal ist es notwendig, Subshells zu verwenden, um Verzeichnisse mit dem mkdir-Befehl zu erstellen. Subshells sind eigenständige Shell-Umgebungen, die innerhalb der aktuellen Shell ausgeführt werden. Sie ermöglichen es dir, Befehle auszuführen, ohne die aktuelle Shell-Umgebung zu ändern.

Variable innerhalb der Subshell verfügbar machen

Wenn du eine Variable in einer Subshell verfügbar machen möchtest, kannst du die folgende Syntax verwenden:

mkdir $(echo $variableName)

Hierbei ist $variableName der Name der Variablen, auf die du in der Subshell zugreifen möchtest.

Ergebnis der Subshell in mkdir verwenden

Du kannst das Ergebnis einer Subshell auch direkt in mkdir verwenden:

mkdir "$(command)"

Hierbei ist command der Befehl, den du in der Subshell ausführen möchtest. Das Ergebnis des Befehls wird in Anführungszeichen als Argument für mkdir verwendet.

Vorteile der Verwendung von Subshells mit mkdir

Die Verwendung von Subshells mit mkdir bietet mehrere Vorteile:

  • Flexibilität: Du kannst komplexe Verzeichnisstrukturen erstellen, die auf der Ausgabe anderer Befehle basieren.
  • Dynamik: Du kannst die Verzeichniserstellung basierend auf variablen Bedingungen automatisieren.
  • Fehlerbehandlung: Du kannst Fehlerbehandlungsroutinen innerhalb der Subshell implementieren, um das ordnungsgemäße Erstellen von Verzeichnissen sicherzustellen.

Erstellen von Verzeichnissen mit dem Befehl umask

Der Befehl umask ist ein praktisches Werkzeug zur Verwaltung von Berechtigungen für neu erstellte Dateien und Verzeichnisse in Linux. Mit umask kannst du festlegen, welche Dateiberechtigungen standardmäßig nicht gesetzt werden sollen. Dies ist besonders nützlich, wenn du möchtest, dass neue Dateien oder Verzeichnisse mit bestimmten Berechtigungen erstellt werden, die von den Standardeinstellungen abweichen.

Syntax

Die Syntax für umask lautet wie folgt:

umask [Options] [Mask]

wobei:

  • Options optionale Flags sind, die das Verhalten von umask steuern
  • Mask eine oktale Zahl ist, die die zu entfernenden Dateiberechtigungen angibt

Funktionsweise

umask funktioniert, indem es die angegebene Maske von den Standardberechtigungen für neu erstellte Dateien und Verzeichnisse subtrahiert. Die Maske ist eine oktale Zahl, bei der jede Ziffer die Berechtigungen für eine bestimmte Benutzerklasse darstellt:

  • 0: Nutzer (Eigentümer)
  • 1: Gruppe
  • 2: Andere

Jede Ziffer in der Maske gibt an, welche Berechtigungen für die entsprechende Benutzerklasse entfernt werden sollen. Beispielsweise entfernt eine Maske von 022 (oktale Notation für 10 in Dezimalzahl) die Schreibrechte (2) für die Gruppe und die anderen Benutzer.

Anwendungsfälle

umask ist in verschiedenen Szenarien nützlich, unter anderem:

  • Einschränkung der Standardberechtigungen: Verwende umask, um die Standardberechtigungen für neu erstellte Dateien und Verzeichnisse zu beschränken, um Datenschutz und Sicherheit zu gewährleisten.
  • Festlegen spezifischer Berechtigungen: Du kannst umask verwenden, um sicherzustellen, dass neue Dateien oder Verzeichnisse mit bestimmten Berechtigungen erstellt werden, die von den Standardeinstellungen abweichen.
  • Fehlerbehebung: umask kann dir helfen, Probleme bei der Berechtigungseinstellung zu identifizieren und zu beheben.

Beispiel

Angenommen, du möchtest, dass alle neu erstellten Dateien und Verzeichnisse die folgenden Berechtigungen haben:

  • Nutzer: Lesen, Schreiben und Ausführen
  • Gruppe: Lesen und Ausführen
  • Andere: Keine Berechtigungen

Um dies zu erreichen, kannst du die folgende umask-Maske verwenden:

umask 003

Diese Maske entfernt die Schreibberechtigung für die Gruppe (3) und alle Berechtigungen für andere Benutzer (3). Als Ergebnis haben neu erstellte Dateien und Verzeichnisse die gewünschten Berechtigungen.

Verhindern der Erstellung von Verzeichnissen mit dem Befehl rmdir

Der Befehl rmdir dient zum Entfernen von leeren Verzeichnissen. Es ist jedoch nicht möglich, mit rmdir die Erstellung eines Verzeichnisses zu verhindern.

Verzeichniserstellung mit anderen Befehlen

Wenn du verhindern möchtest, dass ein Verzeichnis erstellt wird, musst du einen anderen Befehl verwenden, z. B. touch.

Beispiel:

touch /tmp/testdir

Dieser Befehl erstellt eine leere Datei namens testdir im Verzeichnis /tmp. Da testdir nun eine Datei ist, kann kein Verzeichnis mit demselben Namen erstellt werden.

Verwendung von Berechtigungen

Du kannst auch die Dateiberechtigungen verwenden, um die Erstellung von Verzeichnissen zu verhindern. Setze dazu die Berechtigungen für das übergeordnete Verzeichnis so, dass der Benutzer, der das Verzeichnis erstellen möchte, keine Schreibberechtigung hat.

Beispiel:

chmod 555 /tmp

Dieser Befehl setzt die Berechtigungen für das /tmp-Verzeichnis so, dass der Benutzer und die Gruppe Leseberechtigung haben, andere aber keine Berechtigungen. Dadurch wird verhindert, dass der Benutzer, der versucht, das Verzeichnis zu erstellen, die erforderliche Schreibberechtigung hat.

Subshell-Techniken

Du kannst auch Subshell-Techniken verwenden, um die Erstellung von Verzeichnissen zu verhindern. Dazu erstellst du eine Subshell und verwendest darin den Befehl umask.

Beispiel:

(umask 022; mkdir /tmp/testdir)

Dieser Befehl erstellt eine Subshell und setzt die Dateimaske auf 022. Dies bedeutet, dass neue Dateien und Verzeichnisse mit den Berechtigungen 755 erstellt werden. Da das testdir-Verzeichnis mit diesen Berechtigungen erstellt wird, kann es nur vom Benutzer gelesen und ausgeführt werden. Andere Benutzer können das Verzeichnis nicht schreiben oder erstellen, sodass es nicht erstellt wird.

Es ist wichtig zu beachten, dass diese Methoden nur die Erstellung von Verzeichnissen durch andere Benutzer verhindern. Sie verhindern nicht, dass der Benutzer mit Root-Rechten Verzeichnisse erstellt.

Folge uns

Neue Posts

Beliebte Posts