Was ist der Unterschied zwischen chmod u+x
und gerecht chmod +x
? Ich habe eine Menge Tutorials gesehen, in denen es heißt u+x
, Skripte ausführbar zu machen. Das Weglassen von u
scheint jedoch keine Wirkung zu haben.
quelle
Was ist der Unterschied zwischen chmod u+x
und gerecht chmod +x
? Ich habe eine Menge Tutorials gesehen, in denen es heißt u+x
, Skripte ausführbar zu machen. Das Weglassen von u
scheint jedoch keine Wirkung zu haben.
Die Manpage von chmod
deckt das ab.
Dies bedeutet, dass chmod u+x somefile
nur der Eigentümer dieser Datei Ausführungsberechtigungen chmod +x somefile
erhält, wohingegen dies dasselbe ist wie chmod a+x somefile
.
Das Format eines symbolischen Modus ist
[ugoa...][[+-=][rwxXstugo...]...][,...]
. Es können mehrere symbolische Operationen angegeben werden, die durch Kommas getrennt sind.Eine Kombination der Buchstaben 'ugoa' steuert, welche Benutzer auf die Datei zugreifen: der Benutzer, dem sie gehört (u), andere Benutzer in der Dateigruppe (g), andere Benutzer, die nicht zur Dateigruppe gehören (o), oder alle Benutzer (a). Wenn keine von diesen angegeben ist, ist der Effekt so, als ob 'a' angegeben wäre, aber die in der umask gesetzten Bits sind nicht betroffen.
chmod +x file
unterscheidet sich vonchmod a+x file
- siehe Ravexinas Antwort für Details.Wenn Sie dies nur tun,
+x
wird dies auf alle Flags angewendet: [u] ser, [g] roup, [o] thers.Geben Sie
man chmod
für weitere Informationen.quelle
Bedarf
Zunächst empfehle ich Ihnen, diese Fragen und die unten verlinkten Antworten zu lesen:
Es hilft Ihnen, alle notwendigen Teile zu verstehen, die Sie wissen müssen.
Kurze Version
chmod +x
ist gleichchmod ugo+x
(Basierend aufumask
Wert)chmod a+x
ist gleichchmod ugo+x
(ohne Berücksichtigung desumask
Wertes)Erläuterung
Das Ergebnis von
chmod a+x
ist, das ausführbare Bit für alle (Eigentümer, Gruppe, Andere) zu setzen, richtig?Da
chmod +x
es jedoch ein bisschen knifflig ist, heißt es "umask
Wert verwenden" und basierend auf diesem Wert addieren Sie dasx
zu jedem, der erlaubt ist.Also, wenn das
umask
meiner Umgebung ist0002
:Es wird zu
x
Benutzer (Eigentümer), Gruppe und anderen hinzugefügt , in dieser Situation (die für die meisten Systeme die Standardsituation ist) ist es genau wiechmod ugo+x
oder genausochmod a+x
oder in einer ausführlicheren Form:Können Sie die Verbindung zwischen
chmod u+x,g+x,o+x
und die Ausgabe von erkennenumask -S
?Jetzt ändern wir
umask
die aktuelle Shell auf0003
:Wie Sie jetzt sehen können, erhalten nur der Eigentümer und die Gruppe das ausführbare Bit und nicht die anderen. Es bedeutet
chmod +x
jetzt gleichchmod u+x,g+x
oderchmod ug+x
.Fragestunde!
Was passiert , wenn ich laufe
chmod +w
auf eine Datei nach der Einstellungumask
zu0003
?Wie zuvor betrifft es nur
user
undgroup
der Datei, da 3 auch die Schreibberechtigung (2) entfernt.Bonus
Dies hat den gleichen Effekt, wenn Sie etwas entfernen wie
chmod -w
:quelle
chmod u+x
macht die Datei für Ihren Benutzer ausführbar (es wird sie nur für Ihren Benutzer hinzugefügt, obwohl sie möglicherweise bereits vom Gruppeneigentümer oder "anderen" ausführbar ist).chmod +x
oderchmod a+x
('all plus executable bit') macht die Datei für alle ausführbar.Wenn Sie dies für ein Verzeichnis tun, wird das Verzeichnis stattdessen durchsuchbar. Dh, Sie können den Inhalt eines Verzeichnisses auflisten, für das Sie die Berechtigung + x haben.
quelle
chmod u+x file
bedeutet, dass Sie das ausführbare Bit zum Eigentümer der Datei hinzufügen, während Sie das ignorierenumask
(Ihr Mod wird gesetzt, keine Frage).chmod +x file
bedeutet , dass das ausführbare Bit an den Eigentümer, Gruppe und andere hinzufügen , während die Berücksichtigungumask
(Überprüfen Sie zunächst mitumask
dann gelten die Mods, könnte es unterschiedliche Auswirkungen auf umask Wert basierend haben).Lassen Sie uns zwei Dateien erstellen:
Jetzt stelle ich die
umask
auf „111“ ausführbare Bits zu entfernen:umask 111
.Wie Sie sehen können, hat das
chmod
ignorierteumask
und das file1 ausführbare Bit für seinen Besitzer, das zweite hat jedoch nichts getan, da es den Wert von umask berücksichtigt.quelle