Jede Datei, die sich in einem POSIX-kompatiblen Dateisystem (Ext4, Btrfs, XFS, JFS usw.) befindet, hat sich selbst zugewiesene "Modusbits".
Um eine Datei unter Linux ausführbar zu machen, muss das Bit für den ausführbaren Modus aktiviert werden.
Um das Bit für den ausführbaren Modus zu setzen, wird der Befehl chmod wie folgt verwendet:
chmod u+x <file>
Damit können Sie diese Datei vom Terminal aus ausführen:
./file
Das war die schnelle Zusammenfassung. Sehen wir uns die Dinge ein wenig im Detail an.
Machen Sie eine Datei unter Linux ausführbar
Es gibt mehrere Möglichkeiten, wie Sie eine Datei unter Linux ausführbar machen können. Die gebräuchlichsten Methoden beinhalten die Verwendung von chmod
Befehl, auf unterschiedliche Weise.
Um zu prüfen, ob Sie eine Datei ausführen können, verwenden Sie den -l
Flag mit ls
Befehl.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
In der ersten Spalte -rw-r--r--
stellt dar, dass der Besitzer lesen und schreiben kann, Benutzer aus der Gruppe nur lesen und alle anderen nur die Datei lesen können.
Beachten Sie das Fehlen von x
von den Erlaubnissymbolen. Das bedeutet, dass lhb.txt
ist nicht ausführbar.
Ich empfehle dringend, sich über Linux-Dateiberechtigungen zu informieren und Ihre Grundlagen aufzufrischen, um diese Befehle besser zu verstehen.
Methode 1:Datei für alle ausführbar machen
Die erste und einfachste Methode besteht darin, eine Datei mit dem folgenden Befehl ausführbar zu machen:
chmod +x <file>
Das x
Flag dient dazu, die Ausführungsberechtigung einer Datei zu setzen oder aufzuheben. Und mit +
Zeichen vor x
bedeutet, dass wir es als ausführbare Datei festlegen möchten.
Dadurch wird die Datei für den Eigentümer, die Gruppe und alle anderen ausführbar. Jeder auf dem System kann es ebenfalls ausführen.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Wie Sie jetzt sehen können, haben alle, der Eigentümer, die Gruppe und andere die ausführbare Datei x
Bit gesetzt. Das bedeutet, dass jeder diese Datei jetzt ausführen kann.
Methode 2:Datei nur für bestimmte Benutzer oder Gruppen ausführbar machen
Wenn Sie nicht möchten, dass jeder eine Datei ausführen kann, sollten Sie Klassen angeben, bevor Sie Dateiberechtigungen hinzufügen/entfernen.
Die verfügbaren Klassen sind:
u
:Berechtigungen für Eigentümer/Benutzerg
:Berechtigungen für Gruppeo
:Berechtigungen für anderea
:Berechtigungen für alle
Wenn Sie eine Klasse angeben, ähnelt die Syntax größtenteils der, die Sie in der ersten Methode gesehen haben.
chmod <class>+x <file>
Das heißt, wenn ich die Datei so ausführbar machen möchte, dass nur der Eigentümer der Datei sie ausführen kann und niemand sonst, dann sollte ich den folgenden Befehl verwenden:
chmod u+x <file>
Hier ist ein Beispiel:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod u+x lhb.txt
$ ls -l lhb.txt
-rwxr--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Um es für alle in der Gruppe, die diese Datei besitzen, ausführbar zu machen, sollte ich den folgenden Befehl verwenden:
chmod g+x <file>
Hier ist ein Beispiel:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod g+x lhb.txt
$ ls -l lhb.txt
-rw-r-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Wenn Sie a
angeben Klasse, es ist fast so, als ob Sie keine angegeben hätten. Schauen wir mal.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 644 lhb.txt #reset permissions
$ chmod a+x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Diese Befehle sehen möglicherweise anders aus, haben aber das gleiche Ergebnis.
Methode 3:Verwenden Sie die Oktalzahlen
Wenn Sie der ersten Methode folgen, aktivieren Sie nur das Ausführbar-Flag einer Datei, indem Sie ein +x
ausführen , so dass jeder es ausführen kann.
Aber manchmal möchten Sie vielleicht nicht, dass jeder eine Datei ausführt, vielleicht sollte es einige Privilegien benötigen. In diesem Fall können Sie den vollständigen Satz an Berechtigungen angeben.
Dies geschieht normalerweise, indem entweder ein Oktalwert oder ein symbolischer Wert angegeben wird, um Dateiberechtigungen zu aktivieren.
Auf diese Weise können Sie genauer steuern, wie die Flags gesetzt werden. Unten ist die Syntax für die Verwendung von Oktalwerten mit chmod
Befehl:
chmod <octal> <file>
Wenn Sie nicht gut mit Zahlen umgehen können, können Sie einen Online-Chmod-Rechner verwenden, der Ihnen hilft, korrekte Oktalwerte zu generieren und so die Verwendung falscher Werte und das Durcheinander von Dateiberechtigungen zu vermeiden.
Angenommen, ich möchte die Datei nur für den Eigentümer und die Gruppe ausführbar machen, ich muss zuerst ihre aktuellen Berechtigungen kennen und die ausführbaren Bits mit [chmod-calculator].
hinzufügenMal sehen, wie das geht.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 754 lhb.txt
$ ls -l lhb.txt
-rwxr-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Wie Sie sehen, können nur der Eigentümer und die Gruppe die Datei ausführen.
Schlussfolgerung
In diesem Artikel wird beschrieben, wie Sie eine Datei in einem Linux-System ausführbar machen. Es konzentrierte sich hauptsächlich auf die verschiedenen Möglichkeiten, den chmod
zu verwenden Befehl. Wenn Sie mehr darüber wissen möchten, haben wir ein paar Beispiele zur Verwendung von chmod
Befehl.