Eine ausführbare Datei unter Linux erstellen

Foto des Autors

By Jan

Voraussetzungen für die Ausführung von Dateien unter Linux

Als Unix-ähnliches Betriebssystem verwendet Linux Berechtigungen, um den Zugriff auf Dateien und Verzeichnisse zu kontrollieren. Um eine Datei unter Linux ausführen zu können, musst du über die entsprechenden Zugriffsberechtigungen verfügen. Dieser Abschnitt führt dich durch die wesentlichen Voraussetzungen für die Ausführung von Dateien unter Linux.

Dateirechte verstehen

Jede Datei und jedes Verzeichnis in Linux hat eine Reihe von Berechtigungen, die den Zugriff für drei Benutzergruppen steuern:

  • Besitzer: Der Benutzer, der die Datei erstellt hat
  • Gruppe: Benutzer, die der gleichen Gruppe wie der Eigentümer angehören
  • Andere: Alle anderen Benutzer auf dem System

Diese Berechtigungen werden üblicherweise in einem bestimmten Format dargestellt: -rwxrwxrwx. Jeder Buchstaben stellt eine Berechtigung dar:

  • r (Lesen): Berechtigung zum Lesen des Inhalts der Datei
  • w (Schreiben): Berechtigung zum Ändern des Inhalts der Datei
  • x (Ausführen): Berechtigung zum Ausführen des Inhalts der Datei

Standardberechtigungen von Dateien

Wenn du eine neue Datei erstellst, erhält die Datei standardmäßig die folgenden Berechtigungen:

  • Besitzer: rwx (Lesen, Schreiben, Ausführen)
  • Gruppe: rw (Lesen, Schreiben)
  • Andere: r (Lesen)

Das bedeutet, dass der Besitzer die Datei lesen, schreiben und ausführen kann, während Mitglieder der Gruppe sie lesen und schreiben, aber nicht ausführen können, und andere Benutzer die Datei nur lesen können.

Ausreichende Berechtigungen prüfen

Um eine Datei auszuführen, musst du über die Ausführen-Berechtigung für die Benutzergruppe verfügen, der du angehörst. Du kannst die Berechtigungen einer Datei mithilfe des ls -l-Befehls prüfen:

$ ls -l myfile
-rw-r--r--  1 user  group  12345 Jul  8 10:09 myfile

In diesem Beispiel hat der Besitzer (user) die Berechtigungen rwx, die Gruppe (group) hat rw, und andere (Andere) haben nur r. Die erste Spalte zeigt an, dass die Datei noch keine Ausführbarkeit für Benutzer außerhalb der Gruppe und des Besitzers hat.

chmod-Befehl: Zugriffsrechte ändern

Was ist chmod?

chmod ist ein Befehl in Linux-Systemen, mit dem du die Zugriffsrechte von Dateien und Verzeichnissen ändern kannst. Die Rechte bestimmen, wer lesen, schreiben oder eine Datei ausführen darf.

Syntax

Die Syntax von chmod lautet:

chmod [Berechtigungen] [Dateiname]

Dabei sind:

  • Berechtigungen: Eine Kombination aus Buchstaben und Zahlen, die die Zugriffsrechte festlegen.
  • Dateiname: Der Pfad zur Datei oder zum Verzeichnis, dessen Rechte du ändern möchtest.

Zugriffsrechte verstehen

chmod verwendet drei grundlegende Zugriffsrechte:

  • r (Lesen): Ermöglicht das Lesen des Inhalts einer Datei oder das Auflisten des Inhalts eines Verzeichnisses.
  • w (Schreiben): Ermöglicht das Erstellen, Ändern oder Löschen des Inhalts einer Datei oder das Erstellen neuer Dateien oder Verzeichnisse in einem Verzeichnis.
  • x (Ausführen): Ermöglicht die Ausführung einer Datei oder den Zugriff auf ein Verzeichnis.

Berechtigungen festlegen

Du kannst die Zugriffsrechte für drei verschiedene Gruppen festlegen:

  • Besitzer: Der Eigentümer der Datei oder des Verzeichnisses.
  • Gruppe: Die Gruppe, zu der der Eigentümer gehört.
  • Alle: Alle anderen Benutzer des Systems.

Um Berechtigungen für eine bestimmte Gruppe zu ändern, verwendest du folgende Syntax:

chmod [Berechtigung für Besitzer][Berechtigung für Gruppe][Berechtigung für Alle] [Dateiname]

Beispielsweise erteilt der folgende Befehl dem Besitzer Leserechte, der Gruppe Schreibrechte und allen anderen Ausführungsrechte:

chmod 464 datei.txt

Numerische Berechtigungen

Anstelle der Buchstabenberechtigungen kannst du auch numerische Berechtigungen verwenden. Jeder Gruppe wird eine Zahl zugewiesen:

  • Besitzer: 4
  • Gruppe: 2
  • Alle: 1

Um numerische Berechtigungen festzulegen, addierst du einfach die Zahlen für die gewünschten Berechtigungen. Beispielsweise erteilt der folgende Befehl dem Besitzer alle Berechtigungen:

chmod 700 datei.txt

Tipps

  • Überprüfe die aktuellen Berechtigungen einer Datei mit dem Befehl ls -l.
  • Sei vorsichtig beim Ändern der Berechtigungen, da dies Sicherheitsrisiken zur Folge haben kann.
  • Verwende die Option -R mit chmod, um die Berechtigungen für eine Datei und alle ihre Unterverzeichnisse und -dateien rekursiv zu ändern.

./ (Punkt-Schrägstrich): Ausführbare Datei im aktuellen Verzeichnis aufrufen

Nachdem du die Zugriffsrechte geändert hast, kannst du die ausführbare Datei im aktuellen Verzeichnis aufrufen, indem du den Befehl ./ verwendest, gefolgt vom Namen der ausführbaren Datei.

Funktionsweise

Der Befehl ./ teilt dem Betriebssystem mit, dass die Datei im aktuellen Verzeichnis ausgeführt werden soll. Dies ist besonders nützlich, wenn sich die ausführbare Datei nicht in deinem $PATH befindet, der eine Liste von Verzeichnissen enthält, in denen das System nach ausführbaren Dateien sucht.

Beispiel

Angenommen, du hast eine ausführbare Datei mit dem Namen programm.sh in deinem aktuellen Verzeichnis. Du kannst sie mit folgendem Befehl ausführen:

./programm.sh

Tipps

  • Wenn du den Befehl ./ verwendest, musst du dich im selben Verzeichnis wie die ausführbare Datei befinden.
  • Du kannst auch den vollständigen Pfad zur ausführbaren Datei angeben, wenn sie sich nicht im aktuellen Verzeichnis befindet.
  • Wenn du die ausführbare Datei regelmäßig aufrufen musst, kannst du eine Verknüpfung erstellen, indem du den Befehl ln -s verwendest. Dies erspart dir die Eingabe des vollständigen Befehls jedes Mal, wenn du die Datei ausführen möchtest.

Vorbereitungen für die Ausführung von Dateien

Um ausführbare Dateien unter Linux ausführen zu können, sind einige Vorbereitungen erforderlich. Hier sind die wichtigsten Schritte, die du beachten solltest:

1. Dateitypen verstehen

Linux unterscheidet zwischen verschiedenen Dateitypen. Um eine Datei ausführen zu können, muss sie als "ausführbare Datei" gekennzeichnet sein. Dies wird durch die Dateiberechtigungen gesteuert.

2. Dateiberechtigungen prüfen

Die Dateiberechtigungen bestimmen, wer auf eine Datei zugreifen und sie ausführen darf. Du kannst sie mit dem Befehl ls -l überprüfen. Die Ausgabe zeigt die Zugriffsrechte für den Besitzer, die Gruppe und andere Benutzer an.

3. Ausführbarkeitsflag setzen

Um eine Datei ausführbar zu machen, musst du das Ausführbarkeitsflag setzen. Dies kannst du mit dem Befehl chmod tun. Der Befehl nimmt folgende Form an:

chmod +x [Dateiname]

z.B.:

chmod +x datei.sh

Dadurch wird das Ausführbarkeitsflag für den Besitzer gesetzt.

4. Verzeichnispfad hinzufügen

Wenn sich die ausführbare Datei nicht im aktuellen Verzeichnis befindet, musst du ihren Verzeichnispfad angeben, wenn du sie aufrufen möchtest. Du kannst dies tun, indem du den Befehl ./ vor den Dateinamen setzt:

./[Dateiname]

z.B.:

./dateiname.sh

5. $PATH-Variable prüfen

Wenn du eine ausführbare Datei von jedem Verzeichnis aus aufrufen möchtest, kannst du sie in die $PATH-Variable aufnehmen. Diese Variable enthält eine Liste von Verzeichnissen, in denen das System nach ausführbaren Dateien sucht. Du kannst sie mit dem Befehl echo $PATH prüfen.

Um eine ausführbare Datei zur $PATH-Variable hinzuzufügen, kannst du export PATH=$PATH:[Verzeichnispfad] verwenden:

export PATH=$PATH:/opt/bin

Dateirechte prüfen und verstehen

Bevor du eine Datei ausführbar machen kannst, musst du die aktuellen Dateirechte verstehen. Diese Rechte bestimmen, wer auf die Datei zugreifen und Änderungen vornehmen kann. Sie sind in drei Kategorien unterteilt:

Zugriffsrechte

  • Benutzer: Der Eigentümer der Datei
  • Gruppe: Die Gruppe, zu der der Benutzer gehört
  • Andere: Alle anderen Benutzer auf dem System

Jedes Recht kann entweder lesen (r), schreiben (w) oder ausführen (x) umfassen.

So prüfst du Dateirechte

Um die Dateirechte zu prüfen, verwende den Befehl ls -l. Dieser Befehl listet alle Dateien in einem Verzeichnis mit ihren Dateirechten auf. Die Ausgabe des Befehls sieht etwa so aus:

-rw-r--r-- 1 user group 1024 2023-03-08 12:34 datei.txt

In diesem Beispiel:

  • -rw-r--r-- sind die Dateirechte.
  • 1 ist die Anzahl der Hardlinks zur Datei.
  • user ist der Besitzer der Datei.
  • group ist die Gruppe, zu der der Benutzer gehört.
  • 1024 ist die Größe der Datei in Bytes.
  • 2023-03-08 12:34 ist der Zeitstempel der letzten Änderung der Datei.
  • datei.txt ist der Name der Datei.

Bedeutung der Dateirechte

Die ersten drei Zeichen der Dateirechte geben den Dateityp an:

  • - Normale Datei
  • d Verzeichnis
  • l Symbolischer Link
  • b Blockgerät
  • c Zeichen Gerät

Die nächsten neun Zeichen geben die Zugriffsrechte an:

  • Die ersten drei Zeichen geben die Zugriffsrechte des Benutzers an.
  • Die nächsten drei Zeichen geben die Zugriffsrechte der Gruppe an.
  • Die letzten drei Zeichen geben die Zugriffsrechte der anderen an.

Wenn ein Recht nicht gewährt ist, wird es durch einen Bindestrich (-) dargestellt.

Dateirechte ändern mit chmod

chmod (change mode) ist ein Linux-Befehl, mit dem du die Zugriffsrechte von Dateien und Verzeichnissen ändern kannst. Um chmod zu verwenden, musst du Folgendes wissen:

Berechtigungssystem

Dateirechte in Linux werden in drei Gruppen unterteilt:

  • Besitzer (user): Der Benutzer, dem die Datei gehört.
  • Gruppe (group): Die Gruppe, zu der der Benutzer gehört.
  • Andere (others): Alle anderen Benutzer außer dem Besitzer und der Gruppe.

Für jede Gruppe kannst du drei Zugriffsrechte festlegen:

  • Lesen (r): Die Datei oder das Verzeichnis lesen.
  • Schreiben (w): Die Datei bearbeiten oder dem Verzeichnis Dateien hinzufügen.
  • Ausführen (x): Die Datei ausführen (bei ausführbaren Dateien) oder das Verzeichnis eingeben.

chmod-Syntax

Die chmod-Syntax lautet:

chmod [Optionen] [Rechte] [Dateiname]

Dabei sind:

  • [Optionen] sind optionale Argumente, die das Verhalten von chmod steuern.
  • [Rechte] sind die Zugriffsrechte, die du festlegen möchtest.
  • [Dateiname] ist der Name der Datei oder des Verzeichnisses, für das du die Rechte ändern möchtest.

Rechte festlegen

Du kannst Rechte auf zwei Arten festlegen:

  1. Symbolisch: Verwende Buchstaben, um Rechte festzulegen:
r: Lesen
w: Schreiben
x: Ausführen

Du kannst mehrere Rechte kombinieren, indem du sie einfach zusammenschreibst, z. B. "rwx" für Lesen, Schreiben und Ausführen.

  1. Numerisch: Verwende eine Oktalzahl, um Rechte festzulegen. Jede Ziffer in der Zahl repräsentiert eine Gruppe von Rechten:
1: Ausführungsrecht
2: Schreibrecht
4: Leserecht

Beispielsweise repräsentiert die Zahl 755 die Rechte "rwxr-xr-x" (Ausführung, Schreiben und Lesen für den Besitzer, Ausführung und Leseberechtigung für die Gruppe und Ausführungsrecht für andere).

Beispiele

Hier sind einige Beispiele für die Verwendung von chmod:

  • Um dem Besitzer Lese- und Schreibberechtigung sowie der Gruppe und anderen nur Leseberechtigung zu erteilen, verwende:
chmod u=rw,g=r,o=r datei.txt
  • Um allen Benutzern Ausführungsrecht für eine ausführbare Datei zu erteilen, verwende:
chmod a+x ausführbare_datei
  • Um die Rechte einer Datei auf 755 zu setzen, verwende:
chmod 755 datei.txt

Ausführbarkeit für Besitzer, Gruppe oder Alle erteilen

Um die Ausführbarkeit für bestimmte Benutzergruppen zu erteilen, verwendest du den chmod-Befehl mit den folgenden Optionen:

/u (Besitzer)

Um die Ausführbarkeit für den Besitzer der Datei zu erteilen, verwende die Option /u.

chmod u+x datei

/g (Gruppe)

Um die Ausführbarkeit für die Gruppe, zu der die Datei gehört, zu erteilen, verwende die Option /g.

chmod g+x datei

/o (Alle anderen)

Um die Ausführbarkeit für alle anderen Benutzer zu erteilen, verwende die Option /o.

chmod o+x datei

/a (Alle)

Um die Ausführbarkeit für alle oben genannten Gruppen zu erteilen, verwende die Option /a.

chmod a+x datei

Beispiel:

Du möchtest beispielsweise die Ausführbarkeit für den Besitzer und die Gruppe einer Datei namens script.sh erteilen:

chmod ug+x script.sh

Symbolische Links erstellen

Neben der Änderung der Dateirechte kannst du auch symbolische Links erstellen, um Dateien ausführbar zu machen. Ein symbolischer Link ist ein Zeiger auf eine andere Datei oder ein Verzeichnis.

Vorteile symbolischer Links

  • Zugriff auf ausführbare Dateien in anderen Verzeichnissen: Du kannst einen symbolischen Link zu einer ausführbaren Datei in einem anderen Verzeichnis erstellen, um sie im aktuellen Verzeichnis auszuführen.
  • Alternative Dateinamen: Du kannst einen symbolischen Link mit einem benutzerfreundlicheren Dateinamen erstellen, während die ursprüngliche ausführbare Datei einen komplexeren Namen hat.

So erstellst du einen symbolischen Link

Um einen symbolischen Link zu erstellen, verwende den Befehl ln:

ln -s Quelle Ziel

Dabei gilt:

  • Quelle ist der Pfad zur ausführbaren Datei oder dem Verzeichnis.
  • Ziel ist der Pfad zum symbolischen Link.

Beispiel

Nehmen wir an, du hast eine ausführbare Datei namens meineapp im Verzeichnis /opt/meineanwendung. Du möchtest einen symbolischen Link namens app im aktuellen Verzeichnis erstellen, um meineapp auszuführen:

ln -s /opt/meineanwendung/meineapp app

Jetzt kannst du die ausführbare Datei durch Aufrufen des symbolischen Links app ausführen:

./app

Hinweise

  • Symbolische Links funktionieren nur auf Dateien und Verzeichnisse, die bereits vorhanden sind.
  • Wenn du den ursprünglichen Speicherort der ausführbaren Datei änderst, musst du den symbolischen Link entsprechend aktualisieren.
  • Symbolische Links können durch Ändern der Dateirechte des ursprünglichen Speicherorts ungültig werden.

Schreibe einen Kommentar