Chmod verstehen: Der Unterschied zwischen u+x und +x
Der Befehl chmod wird verwendet, um Berechtigungen für Dateien und Verzeichnisse innerhalb eines Linux-Systems zuzuweisen. Chmod kann viele verschiedene Syntaxen akzeptieren, wie z.B. den symbolischen Modus und den absoluten Modus, daher kann es ein wenig verwirrend sein, all die verschiedenen Möglichkeiten zu lernen, wie chmod verwendet werden kann. Wenn es darum geht, einem Benutzer Ausführungsberechtigungen zu erteilen, werden die Optionen u+x und +x aufgrund ihrer einfachen und unkomplizierten Syntax häufig verwendet. Aber kennen Sie den Unterschied zwischen diesen beiden Optionen?
In diesem Tutorial lernen Sie die Unterschiede zwischen den chmod-Optionen u+x und +x auf der Linux-Befehlszeile kennen. Wir werden auch einen grundlegenden Überblick über diese Befehlssyntax im Allgemeinen geben, damit Sie ein grundlegendes Verständnis dafür erhalten, wie Sie chmod schnell und effizient für die Zuweisung von Lese-, Schreib- und Ausführungsberechtigungen an Benutzer oder Gruppen auf Ihrem Linux-System verwenden können.
In diesem Tutorial lernen Sie:
- Der Unterschied zwischen
den Optionen u+xund+xfürchmod - So verwenden Sie die symbolische
chmod-Syntax, um Benutzer-, Gruppen- und anderen Konten Berechtigungen zuzuweisen - Wie wirkt sich die
umask-Einstellungauf den Befehlchmod +xaus?
Der Unterschied zwischen den chmod-Optionen u+x und +x
Kurze Antwort
Falls Sie es eilig haben und sich nicht um die Nuancen hinter dem chmod-Befehl kümmern, finden Sie hier die Antwort, die Sie suchen:
U+Xvergibt Ausführungsberechtigungen für den Benutzer (Eigentümer) der Datei+xweist allen Benutzern auf Ihrem System Ausführungsberechtigungen für die Datei zu
Längere Erklärung
Beginnen wir mit einem Blick auf den folgenden Befehl:
chmod u+x file.sh
Jetzt können wir es aufschlüsseln, beginnend mit der ersten Option, die u ist. Beim Zuweisen von Berechtigungen zu einer Datei mit chmod- und symbolischer Modussyntax können wir u verwenden, um Berechtigungen für den aktuellen Benutzer (Eigentümer) der Datei zuzuweisen. Eine Liste der Gesamtoptionen umfasst:
U=der aktuelle User/Eigentümerg=die g-Gruppe, der die Datei gehörto=alle anderenBenutzerkontena=aalle Benutzer (Benutzer; Gruppe; und alle anderen zusammen)
Nachdem Sie angegeben haben, wem wir Berechtigungen zuweisen möchten (entweder Benutzer, Gruppe, andere oder alle), ist das nächste Zeichen in unseren Optionen das Pluszeichen +. Dies zeigt (intuitiv) an, dass wir Berechtigungen hinzufügen. Da das +-Symbol nach dem Buchstaben u steht, wissen wir, dass wir Berechtigungen für den Benutzer hinzufügen. An dieser Stelle könnten wir verwenden:
+=Berechtigungen hinzufügen-=Berechtigungen wegnehmen==angegebene Berechtigungen zuweisen
Schließlich ist das letzte Zeichen in unseren Optionen das x, das die Ausführungsberechtigungen darstellt. Nachdem wir nun die Bedeutung hinter den einzelnen Zeichen aufgeschlüsselt haben, können wir feststellen, dass die u+x-Optionen Ausführungsberechtigungen für den Benutzer der Datei hinzufügen. Beachten Sie, dass die folgenden Optionen für diesen Teil der Optionen verwendet werden können:
R=Leseberechtigungenw=Schreibberechtigungenx=Berechtigungen ausführen
Was bedeutet es also, wenn wir +x in unseren chmod-Optionen angeben, ohne explizit anzugeben, für wen wir die Ausführungsberechtigungen hinzufügen möchten?
chmod +x file.sh
In den meisten Situationen (siehe unten, für welche) ist die Verwendung von +x das Äquivalent zur Verwendung von a+x. Mit anderen Worten, es werden Ausführungsberechtigungen für alle Benutzer (Benutzer, Gruppe und alle anderen) zugewiesen.
Unterschiedliche umask-Werte führen zu unterschiedlichen Ergebnissen
Es gibt einen großen Vorbehalt bei der obigen Antwort, dank der umask-Einstellung eines Linux-Systems.
umask
0002
Eine umask-Einstellung von 0002, wie im obigen Beispiel, bedeutet, dass +x tatsächlich äquivalent zu a+x ist, wie zuvor beschrieben. Eine 0002-Einstellung ist die Standard-umask auf den meisten Linux-Systemen, aber je nachdem, welche Distribution Sie verwenden oder wie das System konfiguriert wurde, können unterschiedliche Ergebnisse auftreten.
Wir können weitere Klarheit erhalten, indem wir die Option -S zum umask-Befehl hinzufügen:
umask -S
u=rwx,g=rwx,o=rx
Nehmen wir an, dass unsere umask-Einstellung stattdessen auf 0003 festgelegt ist. Mit dieser Einstellung werden uns die a+x und +x für chmod definitiv unterschiedliche Ergebnisse liefern.
umask 0003
Wir können dann die Einstellung überprüfen:
umask
0003
umask -S
u=rwx,g=rwx,o=r
Wenn die umask jetzt auf 0003 gesetzt ist, weist der Befehl chmod +x nur dem Benutzer und der Gruppe Ausführungsberechtigungen zu.
Abschließende Gedanken
In diesem Tutorial haben wir den Unterschied zwischen den Optionen u+x und +x für den Befehl chmod auf einem Linux-System kennengelernt. Wir haben auch eine vollständige Liste ähnlicher Optionen gesehen, die wir mit dem Befehl chmod verwenden können, um Lese-, Schreib- und Ausführungsberechtigungen für Dateien für den Benutzer, die Gruppe und andere Konten zuzuweisen oder zu widerrufen. Schließlich haben wir gelernt, welche Auswirkungen die umask-Einstellung hat, wenn es um die Zuweisung von Berechtigungen unter Linux geht.
