Was bedeutet das Argument " +x " unter Unix? (In Bezug auf Berechtigungen)?

Was bedeutet das Argument " +x " unter Unix? (In Bezug auf Berechtigungen)?

Ich verwende Ubuntu und jemand hat mir geraten, die Berechtigungen für eine Datei mit zu ändern sudo chmod " +x ".

Mir ist nicht klar, ob +xdamit die Änderung der Berechtigungen in etwas sehr Allgemeines wie 777oder 775oder in etwas völlig anderes gemeint ist.

+x unixIch habe es mit Google und versucht +x linux, konnte aber bei einer schnellen Suche keine Daten hierzu finden.

Hier sind die Bestellungen, die ich ausgeführt habe (daher stecke ich in Phase 4 fest):

  1. wget installieren
  2. laufenwget http://files.drush.org/drush.phar
  3. laufensudo mv drash.phar /usr/local/bin/drush
  4. laufensudo chmod +x /usr/local/bin/drush
  5. prüfendrush

Antwort1

xist eine symbolische Darstellung des ausführbaren Modus (kann auch im numerischen Format vorliegen), den der chmodBefehl verwendet, um die Ausführungsberechtigung einer Datei festzulegen (bei Verzeichnissen legt er deren durchsuchbaren Modus fest). +legt den ausführbaren Modus fest und -hebt ihn auf.

Aus der Manpage von chmod:

Das Format eines symbolischen Modus ist [ugoa...][[+-=][perms...]...], wobei perms entweder null oder mehrere Buchstaben aus dem Satz rwxXstoder ein einzelner Buchstabe aus dem Satz ist ugo. Es können mehrere symbolische Modi angegeben werden, getrennt durch Kommas.

Weitere Informationen finden Sie unter diesem Link:chmod

Antwort2

Das " +x", auf das Sie sich beziehen, ist das symbolische Modusargument für chmod. Wie angegeben und vorausgesetzt, dass Ihr chmod von Gnu Coreutils stammt, weist dieses Argument chmod an, die ausführbaren Bits für Benutzer, Gruppe und andere zu setzen, mit Ausnahme der ausführbaren Bits, die in der Shell gesetzt sindumask. Wenn Ihre Umask also 0077 ist (was üblich ist), setzt dieser Befehl das Ausführungsbit nur für den Benutzer, dem die Datei gehört. Wenn Ihre Umask 0007 ist (was ebenfalls üblich ist), können der Benutzer und die Gruppe, denen die Datei gehört, sie ausführen.

Der beabsichtigte Effekt ist wahrscheinlich, dass alle Benutzer die Datei ausführen können. Dies können Sie mit symbolischen Modi erreichen, indem Sie angeben, dass alle Ausführungsbits gesetzt werden sollen:

chmod a+x filename

oder durch explizite Angabe der gewünschten Berechtigungen:

chmod 0755 filename

Symbolische Modi sind eine wunderbar nützliche Abkürzung, aber ein Großteil ihres Verhaltens bleibt von POSIX als „implementierungsdefiniert“ erhalten. Daher ist es auch nützlich, sich die numerischen Modi und ihre Bedeutung für portable Skripte und Anweisungen zu merken.

Antwort3

chmod kann Rechte auf zwei Arten erteilen:
1) mit Zahlen (zB chmod 744 file macht die Datei wrx für Sie und r für die Gruppe und andere)
2) mit spezifischen Rechten für spezifische Kategorien
(zB chmod +x erteilt alle Ausführungsrechte).
In Ihrem Fall nehme ich an, dass Ihr Benutzer und (vielleicht) seine Gruppe die Ausführungsrechte benötigen, nicht jeder. Noch ein paar Beispiele:

 chmod u=rx file        (Give the owner rx permissions, not w)
 chmod go-rwx file      (Deny rwx permission for group, others)
 chmod g+w file         (Give write permission to the group)
 chmod a+x file1 file2  (Give execute permission to everybody)
 chmod g+rx,o+x file    (OK to combine like this with a comma)

verwandte Informationen