Von den beiden Optionen zum Ändern von Berechtigungen:
chmod 777 file.txt
chmod a+rwx file.txt
Ich schreibe ein Dokument mit Details, die Benutzer benötigen, um die Dateiberechtigungen einer bestimmten Datei zu ändern. Ich möchte es als die am häufigsten verwendete Methode zum Ändern von Dateiberechtigungen beschreiben.
Derzeit heißt es:
- Set permissions on file.txt as per the example below:
- chmod 777 /tmp/file.txt
Dies ist nur ein Beispiel und ändert keine Dateien, um für alle Benutzer die vollständigen Berechtigungen zu erhalten.
permissions
Kevdog777
quelle
quelle
775
oder nur755
für ausführbare Dateien verwenden.chmod 777
ist wiechmod a=rwx
nichtchmod a+rwx
.777
oder666
ist einfach und viel einprägsamer alsugo+rwx
,a+rwx
oderugo+rw
was sehr verwirrend ist, dao
es mehrdeutig ist und für Sie entweder den Eigentümer oder andere bedeuten kann, die Sie wählen. Anstatt also den großen Fehler zu machen, überprüfen Sie immerman
wieder, welcher der beiden ist, oder verwenden Sie einfach die Zahlen.Antworten:
Google gibt:
chmod 777
ist etwa 3 mal beliebter.Trotzdem bevorzuge ich lange Optionen in der Dokumentation und in Skripten, weil sie sich selbst dokumentieren. Wenn Sie Ihren Anweisungen mit "
ls -l | grep file.txt
Berechtigungen ausführen und überprüfen" folgen , können Sie diese verwenden,chmod a+rwx
da auf diese Weise die Berechtigungen angezeigt werden.quelle
7
chmod 777
populärer ist (wie conjetured vor Ihren Zahlen zu sehen) ist einfach , dass Sie 2 Zeichen weniger geben :)chmod 777
eine praktische Abkürzung darstellt, um den gleichen Effekt zu erzielen. Ihre Leser würden das pädagogische Element in Ihrer Dokumentation schätzen. 777 ist populärer, weil es viel einfacher und schneller ist, 7 dreimal zu treffen, aber wenn ein neuer Benutzer 777 zum ersten Mal sieht, weiß er möglicherweise nicht genau, was es bedeutet. Deshalb ist es eine schlechte Wahl als primäre Dokumentation. Aber es ist definitiv erwähnenswert als Tipp.[Ich bearbeite, um bewährte Verfahren hinzuzufügen, und folge dabei dem Vorschlag von Dotancohen in seiner Antwort. Ich hoffe, es macht es nicht weniger klar, und dass die gute Angewohnheit genommen wird]
Wichtige zusätzliche Informationen: Sie sind nicht gleichwertig.
chmod a+rwx
: setze die letzten 3 Oktale auf 777, damit sichergestellt ist, dass Besitzer, Gruppe und Benutzer das "rwx" gesetzt haben. Wenn das erste Oktal zusätzliche Bits enthält (setuid, setgid und / oder Sticky-Bit), bleiben diese davon unberührt. Betrachten Sie es als binär "oder 00777".chmod 777
: Setzen Sie die Rechte auf 00777, um sicherzustellen, dass der Eigentümer, die Gruppe und die Benutzer "rwx" eingestellt haben, UND NICHTS MEHR. Stellen Sie außerdem sicher, dass die zusätzlichen Bits (setuid, setgid und / oder Sticky-Bit) auf 0 gesetzt sind.Verwenden Sie also das erste Formular, wenn Sie nur sicherstellen möchten, dass jeder Zugriff hat (und stellen Sie sicher, dass dies doppelt, dreifach erforderlich ist ... es öffnet die Tür für alle Arten von Sicherheitsproblemen, von denen einige unerwartet weitreichend sind sie erlauben einem böswilligen Benutzer dies zu tun)
Verwenden Sie das 777-Formular, wenn Sie auch sicherstellen möchten, dass alle setuid / setgid / sticky-Bits zurückgesetzt werden, dh wenn die Dateien "00777" sein müssen, was in Ihrem Fall wahrscheinlich wahrscheinlicher ist (das Recht der Datei ist bekannt, und sollte es sein) : 00777). Stellen Sie auch hier dreifach sicher, dass es wirklich benötigt wird ...
Normalerweise ist es am besten, den Zugriff auf den Eigentümer (und manchmal auf die Gruppe) beizubehalten. Verwenden Sie dann die Gruppen, um bestimmten Benutzern Zugriff auf die Datei / das Verzeichnis zu gewähren. a + rwx ist sowohl einfach als auch normalerweise der falsche Weg, um Zugriff zu gewähren (natürlich gibt es sehr selten Fälle, in denen dies der einzige Weg ist ...)
http://en.wikipedia.org/wiki/Chmod ist eine gute Lektüre, da es erklärt, was jede Zahl oder jeder Buchstabe darstellt (einschließlich setuid / setgid / sticky)
quelle
others
Erlaubnis zu setzen? Wenn Sie als Benutzer auf dem Computer angemeldet sind, können Sie dann doch einfach dieusers
Berechtigung verwenden?chmod 777
ist wiechmod a=rwx
.Ich denke normalerweise, dass der Unterschied darin besteht, dass die Berechtigungen explizit auf 0777 gesetzt werden. Wie bereits erwähnt, wird die führende 0 abgeleitet, wenn Sie nur 777 eingeben bisschen unberührt.
Angenommen, Sie möchten nur sicherstellen, dass eine Datei ausführbar ist, und können ein + x verwenden, um die Ausführungsberechtigung zu ändern, ohne sich Gedanken über die anderen Berechtigungen zu machen oder diese zu ändern. Wenn Sie die oktale Darstellung verwenden, müssen Sie wissen, welche Berechtigungen derzeit festgelegt sind, um sicherzustellen, dass Sie die Berechtigungen nicht auf andere Weise als beabsichtigt ändern.
quelle
Ich würde sagen, dass die Angabe der numerischen Werte in "einfachen Völkerhandbüchern", wie sie für Benutzer von Budget-Webhosting erstellt wurden, weitaus häufiger vorkommt. Achten Sie jedoch darauf, sie als oktale und nicht als dezimale Werte anzugeben :
$ chmod 0777 some_dir
Beachten Sie die führend
0
in0777
. Obwohl Bash und andere CLI-Umgebungen mit dem ungepolsterten Code das Richtige tun, verfügen777
viele Programmiersprachen wie PHP und Perl über ähnliche Funktionen, für die die führenden erforderlich sind0
. Daher empfehle ich auch die Verwendung in Bash, um daran zu denken, dass es dort sein soll.Hinweis für Abwähler: Wie in den Kommentaren erläutert , muss der
chmod
Befehl die Direktive tatsächlich als oktal übergeben, auch wenn die Dezimalschreibweise angegeben ist. Allerdings sind nicht alle Umgebungen unterstützen dies, so ist es am besten Praxis , es zu spezifizieren explizit zu gewöhnen.quelle
chmod
behandelt die Zahl niemals als Dezimalzahl.chmod 777 file
undchmod 0777 file
sind völlig gleichwertig.chmod
Shell-Befehls betrifft. Sie können sich die drei Ziffern einfach als unabhängig voneinander vorstellen, von denen jede eine Reihe von Berechtigungen angibt.chmod 77
ist äquivalent zuchmod 077
.chmod
Befehl interpretiert sein Modusargument in Oktal. Sie müssen aufpassen, wenn Sie die meisten Programmiersprachen (C, Perl, ...) verwenden, aber in einem Shell-Skript ist es für oktalchmod
.