Chmod-Rechner
Berechnen Sie Linux-Dateirechte in beide Richtungen. Kreuzen Sie Lesen, Schreiben und Ausführen für den Eigentümer, die Gruppe und alle anderen an, um den Oktalmodus und den passenden Befehl zu erhalten, oder fügen Sie 755, rwxr-xr-x, u+x oder eine ganze ls -l-Zeile ein und sehen Sie genau, was sie bedeutet.
Geben Sie 755 ein, fügen Sie rwxr-xr-x oder eine ganze ls -l-Zeile ein, oder ändern Sie den Modus mit u+x oder go-w.
| Lesen4 | Schreiben2 | Ausführen1 | Ziffer | |
|---|---|---|---|---|
| Eigentümer | 4+2+1=7 | |||
| Gruppe | 4+1=5 | |||
| Alle anderen | 4+1=5 | |||
| Spezial | nichts=0 |
In einfachen Worten
- Der Eigentümer kann es lesen, es ändern und es ausführen.
- Die Gruppe und alle anderen können es lesen und es ausführen.
- Diese Datei lässt sich ausführen.
Wird in Ihrem Browser berechnet. Nichts wird irgendwohin gesendet.
Was macht chmod?
chmod legt fest, wer eine Datei lesen, schreiben und ausführen darf. Ein Modus besteht aus zwölf Bits und wird meist als drei oder vier Oktalziffern geschrieben: 755, 644, 2775.
Jede der drei Ziffern gehört zu einer Klasse – dem Eigentümer der Datei, der Gruppe der Datei und allen anderen – und jede Ziffer ist die Summe aus drei Zahlen: Lesen ist 4, Schreiben ist 2, Ausführen ist 1. Also ist 7 Lesen, Schreiben und Ausführen, 5 Lesen und Ausführen, 6 Lesen und Schreiben, 4 nur Lesen. Das ist das ganze System. chmod 755 script.sh heißt: Eigentümer 7, Gruppe 5, andere 5.
Die vierte Ziffer, wenn es eine gibt, trägt die drei Spezial-Bits – Setuid 4, Setgid 2 und das Sticky-Bit 1 – und entfällt, wenn keines gesetzt ist. Der Rechner oben zeigt alle vier Ziffern auf einmal samt der Rechnung dahinter, sodass Sie die Zahlen nicht mehr nachschlagen müssen.
chmod 755 script.shchmod 755 setzt jedes Bit des Modus auf einmal: Ausgehend von 644 schaltet es die drei Ausführen-Bits ein, eines je Klasse. Die drei Bits jeder Klasse ergeben zusammen eine Oktalziffer.
Ankreuzen oder tippenDie Tabelle und die Felder sind dasselbe: Ändern Sie eines, und der Rest folgt.Jede Ziffer4 + 2 + 1 für jede Klasse, damit Sie die Zahl nicht mehr auswendig lernen müssen.Alles einfügen755, rwxr-xr-x, u+x oder eine ganze ls -l-Zeile: Alle vier werden gelesen.Der BefehlAus Ihrem gewählten Modus gebaut, mit der richtigen Zahl von Ziffern und einer rekursiven Form, die Ihre Dateien nicht plattmacht.Was es bedeutetEin einfacher Satz, dazu die Warnungen, die ein Modus verdient.So funktionieren Dateirechte unter Linux
Jede Datei hat einen Eigentümer, eine Gruppe und einen Modus. Der Modus gibt jeder von drei Klassen drei Rechte – neun Bits –, und gleich nach dem Dateityp-Zeichen gibt ls -l genau diese neun Zeichen aus.
-rw-r--r-- ist eine Datei (-), die ihr Eigentümer lesen und schreiben darf und die ihre Gruppe und alle anderen nur lesen dürfen: Modus 644. drwxr-xr-x ist ein Verzeichnis (d) mit 755. Das erste Zeichen ist der Typ: - eine Datei, d ein Verzeichnis, l ein symbolischer Link und b, c, p oder s für die Sonderarten. Fügen Sie eine solche Zeile in den Rechner ein, und er liest Modus und Typ daraus ab.
Bei einem Verzeichnis bedeuten die drei Rechte etwas anderes als bei einer Datei. Lesen erlaubt, die Namen darin aufzulisten. Ausführen erlaubt, es zu betreten und die Dateien zu erreichen, deren Namen Sie schon kennen. Schreiben erlaubt zusammen mit Ausführen, Einträge anzulegen und zu löschen – deshalb hängt das Löschen einer Datei von den Rechten des Verzeichnisses ab, nicht von denen der Datei. Ein Verzeichnis mit Lesen, aber ohne Ausführen können Sie auflisten, aber nicht öffnen.
ls -l zuerst ausgibtls -l notes.txt-Typeine Dateirw-Eigentümer4 + 26r--Gruppe44r--Alle anderen44| Recht | Bei einer Datei | Bei einem Verzeichnis |
|---|---|---|
| r4 | Lesen, was darin steht | Die Namen darin auflisten |
| w2 | Ändern, was darin steht | Einträge anlegen, umbenennen und löschen |
| x1 | Als Programm ausführen | Hineingehen und öffnen, was darin liegt |
Andere erste Zeichen: d ein Verzeichnis, l ein symbolischer Link und b, c, p oder s für die Sonderarten.
Was bedeutet chmod 755?
755 heißt: Der Eigentümer darf lesen, schreiben und ausführen, alle anderen dürfen lesen und ausführen, aber nicht ändern. Es ist der übliche Modus für ein Verzeichnis und für ein Programm.
Ziffer für Ziffer: 7 = 4 + 2 + 1, also liest, schreibt und führt der Eigentümer aus. 5 = 4 + 1 für die Gruppe und noch einmal für alle anderen, also lesen und führen beide aus. Ausgeschrieben ist das rwxr-xr-x, als symbolischer Befehl chmod u=rwx,g=rx,o=rx.
Nehmen Sie es für Verzeichnisse, die man betreten können soll, und für Skripte und Programme, die man ausführen können soll. Nehmen Sie es nicht für etwas Geheimes: Die letzte 5 heißt, dass jedes Konto auf dem Rechner die Datei lesen kann. Für die Dateien eines Webservers empfiehlt die Dokumentation von WordPress selbst 755 oder 750 für Verzeichnisse und 644 oder 640 für Dateien.
chmod 755rwxEigentümerr-xGrupper-xAlle anderen- Verzeichnisse, die man betreten muss
- Skripte und Programme
- Alles Geheime: Alle können es lesen
Die Dokumentation von WordPress selbst: Verzeichnisse 755 oder 750, Dateien 644 oder 640.
chmod 644 oder 755: welches brauche ich?
644 für Dateien, 755 für Verzeichnisse und für alles, was ausgeführt werden muss. Der einzige Unterschied ist das Ausführen-Bit.
644 ist rw-r--r--: Der Eigentümer kann es ändern, alle können es lesen, niemand kann es ausführen. Das passt für HTML, CSS, Bilder, Konfigurations- und Quelldateien. 755 ist rwxr-xr-x: dasselbe, dazu das Ausführen-Bit für alle drei Klassen. Ein Verzeichnis braucht es, sonst kann niemand es betreten, und ein Skript braucht es, sonst verweigert die Shell die Ausführung.
Der Fehler, den Sie vermeiden sollten, ist chmod -R 755 über eine ganze Website, das jedes Bild und jede .php-Datei ausführbar macht. Die zwei find-Befehle, die der Rechner schreibt, geben Verzeichnissen und Dateien in einem Durchgang verschiedene Modi, und zwar die, die Sie tatsächlich gewählt haben, nicht ein Paar aus einem Blogbeitrag.
644 · 755| Lesen | Schreiben | Ausführen | ||
|---|---|---|---|---|
| Eigentümer | r | w | - | 6 |
| Gruppe | r | - | - | 4 |
| Andere | r | - | - | 4 |
Dateien: HTML, CSS, Bilder, Konfiguration, Quellcode
| Lesen | Schreiben | Ausführen | ||
|---|---|---|---|---|
| Eigentümer | r | w | x | 7 |
| Gruppe | r | - | x | 5 |
| Andere | r | - | x | 5 |
Verzeichnisse, Skripte und Programme
755Eine Datei mit 755 lässt sich ausführen, und das gilt auch für jedes Bild und jede.php-Datei unter einemchmod -R 755.644Ein Verzeichnis mit 644 zeigt seine Namen, aber niemand kann es betreten oder darin etwas öffnen.
Was macht chmod 777, und ist es sicher?
777 erlaubt jedem Konto auf dem Rechner, die Datei zu lesen, zu ändern und auszuführen. Es ist fast nie die richtige Antwort, und die Dokumentation von WordPress selbst sagt, dass kein Verzeichnis jemals 777 bekommen sollte.
Für alle beschreibbar heißt: Jeder, der sich anmelden kann – oder alles, was als irgendein Benutzer läuft, auch ein kompromittierter Prozess –, kann den Inhalt der Datei ersetzen. Ist die Datei ein Skript, das der Webserver ausführt, haben Sie den Server aus der Hand gegeben. Die Seite zu Berechtigungen bei WordPress empfiehlt 755 oder 750 für Verzeichnisse und 644 oder 640 für Dateien und sagt, dass kein Verzeichnis je 777 haben sollte, auch kein Upload-Verzeichnis.
Kann eine Webanwendung nicht in ein Verzeichnis schreiben, liegt die Lösung beim Eigentümer oder der Gruppe, nicht beim Modus: Übertragen Sie das Verzeichnis mit chown an den Benutzer, als der der Webserver läuft, oder nehmen Sie diesen Benutzer in eine gemeinsame Gruppe auf und nutzen Sie 775. Der Rechner warnt immer, wenn ein Modus allen das Schreiben erlaubt: bei einer Datei stets, bei einem Verzeichnis außer wenn das Sticky-Bit verhindert, dass man gegenseitig Dateien löscht.
chmod 777| Lesen | Schreiben | Ausführen | ||
|---|---|---|---|---|
| Eigentümer | r | w | x | 7 |
| Gruppe | r | w | x | 7 |
| Andere | r | w | x | 7 |
- 1Jedes Konto oder jeder Prozess, der als eines läuft
- 2ersetzt das Skript
- 3und der Webserver führt es aus
WordPress · Verzeichnisse 755 oder 750, Dateien 644 oder 640.
„No directories should ever be given 777, even upload directories.“
Die Lösung liegt beim Eigentümer oder der Gruppe, nicht beim Modus: Übertragen Sie es mit chown an den Benutzer des Webservers, oder teilen Sie eine Gruppe und nehmen Sie 775.
Warum sagt SSH, die Rechte meines Schlüssels seien zu offen?
OpenSSH weigert sich, einen privaten Schlüssel zu benutzen, den jemand außer seinem Eigentümer lesen kann. Setzen Sie den Schlüssel auf 600 und das Verzeichnis .ssh auf 700.
Die genaue Meldung lautet Permissions 0644 for '<path>' are too open., gefolgt von It is required that your private key files are NOT accessible by others. Der Test dahinter ist schroff: Gehört Ihnen die Datei und ist irgendein Gruppen- oder Others-Bit gesetzt, wird der Schlüssel abgelehnt. Deshalb scheitert auch 640, und deshalb ist 600 die Antwort und nicht „etwas weniger als 644“.
chmod 600 ~/.ssh/id_ed25519 und chmod 700 ~/.ssh beheben es. Der öffentliche Schlüssel darf für alle lesbar sein – nur der private Schlüssel und das Verzeichnis zählen hier. Wählen Sie oben unter den häufigen Modi SSH-Schlüssel, und der Rechner schreibt beide Befehle für Sie.
$ssh you@server.example
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/you/.ssh/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
~/.ssh/700drwx------Das Verzeichnisid_ed25519600-rw-------Ihr privater Schlüsselid_ed25519.pub644-rw-r--r--Der öffentliche Schlüssel: Jeder darf ihn lesenconfig600-rw-------Nicht für andere beschreibbar
644rw-r--r--Abgelehnt640rw-r-----Abgelehnt600rw-------Akzeptiert400r--------Akzeptiert
Gruppe und alle anderen: alle müssen aus sein
Symbolischer Modus: u, g, o, a mit +, - und =
chmod u+x script.sh fügt ein Bit hinzu, ohne den Rest anzutasten. + fügt hinzu, - entfernt, = setzt eine Klasse genau auf das, was Sie aufführen.
Die Grammatik lautet [wer][Operator][Rechte], mit Kommas zwischen den Klauseln: u der Eigentümer, g die Gruppe, o alle anderen, a alle drei. go-w nimmt also der Gruppe und den anderen das Schreiben, a=rwx setzt alles, und u=rw,go=r ist eine andere Schreibweise für 644. Fügen Sie eines davon in den Rechner oben ein, und er zeigt, welche Bits sich ändern, vorher und nachher.
Zwei Teile der Grammatik sind leicht falsch zu verstehen, und der Rechner befolgt beide. X – ein großes X – fügt das Ausführen-Bit nur einem Verzeichnis hinzu oder einer Datei, die irgendwo schon ausführbar ist; deshalb ist chmod -R u=rwX,go=rX bei einem gemischten Baum sicher. Und eine Klausel ganz ohne Klasse, etwa +x, ist nicht dasselbe wie a+x: Die in Ihrer umask gesetzten Bits bleiben unberührt, sodass bei der üblichen umask 022 chmod +rwx bei einer 644-Datei 755 ergibt, chmod a+rwx dagegen 777.
chmod u+x script.shuder Eigentümergdie Gruppeoalle anderenaalle drei
+hinzufügen-wegnehmen=genau setzen auf
rlesenwschreibenxausführenXausführen, nur bei Verzeichnissen und bei Dateien, die schon ausführbar sindsSetuid oder SetgidtSticky
| Änderung | Vorher | Nachher | |
|---|---|---|---|
u+x | 644 | 744 | Ausführen für den Eigentümer, sonst nichts angetastet. |
go-w | 775 | 755 | Schreiben der Gruppe und allen anderen weggenommen. |
a=r | 755 | 444 | Alle drei auf Lesen gesetzt, sonst nichts. |
u=rw,go=r | 777 | 644 | Drei Klauseln: eine andere Schreibweise für 644. |
+rwx | 644 | 755 | Keine Klasse: Die Bits der umask (022) werden nicht gesetzt, also erhalten die Gruppe und alle anderen kein Schreiben. |
a+rwx | 644 | 777 | Mit a zählt die umask nicht: Alles wird gesetzt. |
a+Xbei einem Verzeichnis | 644 | 755 | Großes X bei einem Verzeichnis: Ausführen wird hinzugefügt, weil es eines ist. |
a+Xbei einer Datei | 644 | 644 | Großes X bei einer Datei, die niemand ausführen kann: nichts hinzugefügt. |
Setuid, Setgid und das Sticky-Bit
Die vierte Ziffer. Bei einer Datei ändern Setuid und Setgid, als welches Konto ein Programm läuft. Bei einem Verzeichnis bestimmt Setgid die Gruppe neuer Dateien und das Sticky-Bit, wer sie löschen darf.
Setuid (4000) bei einer ausführbaren Datei lässt sie als ihr Eigentümer laufen statt als Sie – passwd ist mit Setuid installiert, damit es mit den Rechten von root läuft, wenn Sie Ihr Passwort ändern. Setgid (2000) tut dasselbe für die Gruppe. Bei einem Verzeichnis tut Setgid etwas anderes und viel Nützlicheres: Neue Dateien darin erben die Gruppe des Verzeichnisses statt der des Erstellers, so bleibt ein gemeinsamer Projektordner gemeinsam. Linux dokumentiert für das Setuid-Bit bei einem Verzeichnis keine Bedeutung; unter macOS und den BSDs kann es neue Dateien den Eigentümer des Verzeichnisses erben lassen, wenn das Dateisystem mit dieser Option eingehängt wurde.
Das Sticky-Bit (1000) bei einem Verzeichnis verhindert, dass man gegenseitig Dateien löscht: Nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder root dürfen einen Eintrag entfernen oder umbenennen. /tmp hat genau deshalb den Modus 1777 – alle dürfen darin schreiben, niemand darf die Arbeit eines anderen löschen. Bei einer normalen Datei ignorieren macOS und die BSDs das Sticky-Bit, und laut GNU-Handbuch hat es dort nur auf manchen älteren Systemen eine Bedeutung. Eine Falle: chmod 755 somedir – oder chmod 0755 somedir – löscht ein Setgid-Bit, das bei einem Verzeichnis schon gesetzt ist, nicht, weil GNU chmod es bei jedem numerischen Modus mit weniger als fünf Ziffern absichtlich behält – POSIX verlangt das Löschen nur bei einer regulären Datei. Nehmen Sie g-s oder das fünfstellige chmod 00755; der Rechner schreibt die fünfstellige Form für Sie, wann immer Sie sie brauchen.
Setuid4755
Ein Programm läuft als Eigentümer der Datei, nicht als Sie.
root root /usr/bin/passwdpasswd ist so installiert und läuft daher mit den Rechten von root, wenn Sie Ihr Passwort ändern.
Bei einem Verzeichnis: unter Linux keine dokumentierte Bedeutung. Unter macOS und den BSDs erhalten neue Dateien den Eigentümer des Verzeichnisses, wenn das Dateisystem mit dieser Option eingehängt wurde.
Setgid2775
In einem Verzeichnis erhalten neue Dateien die Gruppe des Verzeichnisses statt Ihrer.
you devs project/Ein gemeinsames Projektverzeichnis bleibt gemeinsam: Jede neue Datei gehört dem Team.
Unter macOS und den BSDs erhält eine neue Datei immer die Gruppe ihres Verzeichnisses, mit oder ohne dieses Bit.
Sticky1777
In einem Verzeichnis dürfen nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder root eine Datei löschen oder umbenennen.
root wheel /private/tmpAlle dürfen in /tmp schreiben, und niemand darf die Dateien eines anderen löschen.
Bei einer Datei wird das Sticky-Bit unter macOS und den BSDs ignoriert.
Die GNU-Falle: chmod 755 bei einem Verzeichnis lässt dessen Setgid-Bit gesetzt.
$chmod 755 project → Löschen Sie es mit fünf Ziffern oder mit Buchstaben:$chmod 00755 project → $chmod g-s project → umask: was neue Dateien erhalten
Eine neue Datei beginnt bei 666 und ein neues Verzeichnis bei 777, dann wird jedes in der umask gesetzte Bit abgeschaltet. Die übliche umask 022 ergibt 644 und 755.
umask ist keine Subtraktion, sondern eine Maske: Jedes in der umask gesetzte Bit wird im Modus, den das Programm angefordert hat, abgeschaltet. Mit umask 077 ist eine neue Datei 600 und ein neues Verzeichnis 700 – standardmäßig privat. Mit umask 002 erhalten Sie 664 und 775: Die Gruppe darf dann auch schreiben.
Eine umask kann nie eine Datei ausführbar machen, weil der Grundmodus einer Datei gar keine Ausführen-Bits hat – nur Verzeichnisse beginnen bei 777. Deshalb ist ein frisch angelegtes Skript nie ausführbar, bis Sie chmod +x sagen. Wechseln Sie oben zum Reiter umask, um zu sehen, was eine beliebige umask ergibt, und öffnen Sie jedes Ergebnis direkt im Rechner.
umask 022| Beginnt bei | rw-rw-rw- | 666 |
|---|---|---|
| umask | ····w··w· | 022 |
| Ergibt | rw-r--r-- | 644 |
| Beginnt bei | rwxrwxrwx | 777 |
|---|---|---|
| umask | ····w··w· | 022 |
| Ergibt | rwxr-xr-x | 755 |
| umask | Neue Datei | Neues Verzeichnis |
|---|---|---|
022 | 644 | 755 |
002 | 664 | 775 |
027 | 640 | 750 |
077 | 600 | 700 |
Keine umask kann eine Datei ausführbar machen: Eine neue Datei beginnt ohne Ausführen-Bit, das erhalten bleiben könnte.
So ändern Sie einen Ordner und alles darin
chmod -R 755 folder gibt Verzeichnissen und Dateien denselben Modus, wodurch jede Datei ausführbar wird. Zwei find-Befehle geben jeder Art den Modus, den sie haben sollte.
find folder -type d -exec chmod 755 {} + und find folder -type f -exec chmod 644 {} + durchlaufen den Baum je einmal und setzen Verzeichnisse und Dateien getrennt. Der Rechner schreibt beide mit den Modi, die Sie gewählt haben, nicht mit einem festen Paar. Das + am Ende bündelt die Dateien in möglichst wenige chmod-Aufrufe, was bei einem großen Baum zählt.
Der andere sichere Weg ist das große X: chmod -R u=rwX,go=rX folder fügt Ausführen nur Verzeichnissen und Dateien hinzu, die schon ausgeführt werden können. Und nach jeder rekursiven Änderung liest stat -c '%a %n' folder/* alles eine Ebene tiefer zurück.
| Der Ordner | Jetzt | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
site/ | 755 | 755 | 644 | 755 | 755 |
index.html | 644 | 755 | 644 | 644 | 644 |
app.php | 644 | 755 | 644 | 644 | 644 |
deploy.sh | 755 | 755 | 644 | 644 | 755 |
img/ | 755 | 755 | 644 | 755 | 755 |
logo.png | 644 | 755 | 644 | 644 | 644 |
- 1
$chmod -R 755 siteJede Datei lässt sich ausführen - 2
$chmod -R 644 siteKein Ordner lässt sich betreten - 3
$find site -type d -exec chmod 755 {} +$find site -type f -exec chmod 644 {} +Jede Art erhält ihren eigenen ModusEin Skript verliert auch sein x - 4
$chmod -R u=rwX,go=rX siteJede Art erhält ihren eigenen ModusEine Datei, die schon ausführbar war, behält ihr x
Gibt es chmod unter Windows?
Nicht dasselbe. Windows verwendet Zugriffssteuerungslisten, und icacls ist der nächstliegende Befehl: icacls file /grant Users:(RX).
NTFS-Rechte sind eine Liste von Einträgen, die jeweils einen Benutzer oder eine Gruppe und deren Rechte nennen, also gibt es keine einzelne dreistellige Zahl zu berechnen. Die nächstliegende Übersetzung gilt je Klasse: Lesen wird R, Lesen und Ausführen RX, Schreiben W, und Ausführen allein wird zum besonderen Recht X; braucht eine Ziffer zwei Rechte, werden beide aufgeführt – 7 ist (RX,W). Keine Ziffer ergibt Ändern (Modify, M), das auch Löschen erlaubt, oder Vollzugriff (Full control, F), der auch das Ändern der Zugriffsrechte und die Übernahme des Besitzes erlaubt. Der Rechner zeigt diese Zuordnung neben Ihrem Modus, und sie ist die beste Näherung, keine Entsprechung.
Im Windows-Subsystem für Linux funktioniert chmod auf dem Linux-Dateisystem richtig. Auf einem unter /mnt/c eingehängten Windows-Laufwerk funktioniert es nur, wenn das Laufwerk mit der Option metadata eingehängt ist. Ohne sie wird der Modus aus Ihren Windows-Rechten errechnet, für Eigentümer, Gruppe und alle anderen gleich, und chmod kann kaum mehr tun, als das Schreibgeschützt-Attribut zu setzen – ein Schlüssel auf der Windows-Seite kann also als zu offen gelten, und chmod 600 hilft dort nicht.
icacls| Ziffer | Buchstaben | Nächstliegendes Recht |
|---|---|---|
| 7 | rwx | (RX,W)Lesen, schreiben und ausführen |
| 6 | rw- | (R,W)Lesen und schreiben |
| 5 | r-x | (RX)Lesen und ausführen |
| 4 | r-- | (R)Lesen |
| 3 | -wx | (W,X)Schreiben und ausführen |
| 2 | -w- | (W)Schreiben |
| 1 | --x | (X)Ausführen |
| 0 | --- | —Kein Zugriff |
Die beste Näherung, keine Entsprechung: Windows führt eine Liste von Einträgen, die jeweils nennen, wer welche Rechte erhält. Keine Ziffer ergibt Ändern (Modify, M), das auch Löschen erlaubt, oder Vollzugriff (Full control, F), der auch das Ändern der Zugriffsrechte (WDAC) und die Übernahme des Besitzes (WO) erlaubt. Auf beiden Systemen darf der Eigentümer die Rechte einer Datei immer ändern.
/homeAuf dem Linux-Dateisystem:chmodfunktioniert wie auf jedem Linux./mnt/cUnter/mnt/cohne die Optionmetadata: Die Modi stammen aus den Windows-Rechten, undchmodändert fast nichts./mnt/c · metadataMitmetadata:chmodfunktioniert, aber nie über das hinaus, was Windows Ihnen erlaubt.
So prüfen Sie die Rechte einer Datei
ls -l zeigt sie als Buchstaben und stat als Zahl. Fügen Sie eines von beiden in den Rechner ein, und er liest den Modus zurück.
ls -l file gibt -rw-r--r-- 1 you staff 4096 25 Oct 09:26 file aus, und der Rechner nimmt die ganze Zeile – Sie müssen den Modus nicht selbst herauspicken. stat -c '%a %n' file gibt unter Linux 644 file aus; unter macOS lautet dasselbe stat -f '%Lp %N' file. Für ein ganzes Verzeichnis auf einmal listet GNU find . -maxdepth 1 -printf '%m %p\n' jeden Modus als Zahl (das find von macOS kennt kein -printf).
Ein + am Ende der Rechte-Zeichenfolge bedeutet, dass es mehr gibt als die neun Bits: Unter Linux ist es eine POSIX-ACL, die getfacl zeigt, und diese zusätzlichen Einträge stehen gar nicht im Modus. Unter macOS bedeutet ein @ erweiterte Attribute und ein + erweiterte Sicherheitsinformationen. Bei GNU ls bedeutet ein Punkt (.) einen Sicherheitskontext, etwa den von SELinux. Der Rechner akzeptiert alle drei Markierungen und sagt Ihnen, dass der Modus nur ein Teil der Geschichte ist.
ls -l-Zeile, Feld für Feldls -l notes.txt-TypRechte+Markierung1LinksyouEigentümerstaffGruppe4096Größe25 Oct 09:26Geändertnotes.txtName- Linux
$stat -c '%a %n' notes.txt644 notes.txt - macOS
$stat -f '%Lp %N' notes.txt644 notes.txt
-rw-r--r--+Linux: eine POSIX-ACL (getfacllistet sie). macOS: erweiterte Sicherheitsinformationen wie eine ACL.-rw-r--r--@macOS: erweiterte Attribute.-rw-r--r--.GNUls: ein Sicherheitskontext, etwa der von SELinux, und sonst nichts.-rw-r--r--Nichts weiter: Die neun Bits sind die ganze Geschichte.
Chmod-Rechner: Fragen und Antworten
Was bedeutet chmod 755?
rwxr-xr-x. Die Ziffern sind Summen: 7 ist 4 + 2 + 1 und 5 ist 4 + 1. Nehmen Sie es für Verzeichnisse, die das Ausführen-Bit brauchen, bevor sie jemand betreten kann, und für Skripte und Programme. Nie für eine Datei, die privat bleiben soll.Was ist der Unterschied zwischen chmod 644 und 755?
rw-r--r--, richtig für Dokumente, Bilder, Konfigurations- und Quelldateien. 755 ist rwxr-xr-x, richtig für Verzeichnisse und für alles, was ausgeführt werden muss. Gibt man Dateien 755, wird jede davon ausführbar, weshalb ein rekursives chmod -R 755 über eine Website ein Fehler ist; setzen Sie Verzeichnisse und Dateien getrennt.Was macht chmod 777, und ist es sicher?
Was macht chmod +x?
+x ohne Klasse nicht ganz a+x ist: Eine Klausel ohne Klasse lässt die Bits Ihrer umask unberührt, sodass bei der üblichen umask 022 Eigentümer, Gruppe und andere alle das Ausführen-Recht erhalten, eine strengere umask wie 077 es aber nur dem Eigentümer gibt. Schreiben Sie chmod a+x oder chmod u+x, wenn Sie sicher sein wollen.Was bedeutet chmod 600, und warum verlangt SSH es?
rw-------: Nur der Eigentümer kann die Datei lesen oder ändern. OpenSSH lehnt einen privaten Schlüssel ab, den ein anderes Konto lesen kann, mit der Meldung Permissions 0644 for '<path>' are too open. Die Prüfung ist streng: Gehört Ihnen die Datei und ist überhaupt ein Gruppen- oder Others-Bit gesetzt, wird der Schlüssel abgelehnt, auch 640 scheitert also. Nehmen Sie chmod 600 für den Schlüssel und chmod 700 für ~/.ssh.Was bedeutet die vierte Ziffer bei chmod?
chmod 2775 folder setzt Setgid, damit neue Dateien darin die Gruppe des Ordners erhalten. chmod 1777 folder setzt das Sticky-Bit, damit man sich nicht gegenseitig Dateien löscht, wie es /tmp nutzt. Die Ziffer entfällt, wenn keines gesetzt ist.Warum hat chmod 755 das Setgid-Bit meines Ordners nicht entfernt?
0755. Das ist Absicht und konform: POSIX verlangt das Löschen dieser Bits nur bei einer regulären Datei. Nehmen Sie die symbolische Form chmod g-s folder oder schreiben Sie die führenden Nullen als chmod 00755 folder. Dieser Rechner schreibt die fünfstellige Form automatisch, wenn Ihre Änderung sie braucht.Was ist der Unterschied zwischen chmod und chown?
chmod legt fest, was der Eigentümer, die Gruppe und alle anderen tun dürfen. chown legt fest, wer Eigentümer und Gruppe überhaupt sind. Sie beantworten zwei Hälften derselben Frage, und ein „Permission denied“ auf einem Webserver ist oft ein Problem des Eigentums, nicht des Modus: Die Dateien gehören dem falschen Benutzer, und kein Modus unterhalb von 777 überdeckt das.Kann ich eine ls -l-Zeile in diesen Rechner einfügen?
-rw-r--r-- 1 you staff 4096 25 Oct 09:26 notes.txt wird als Modus 644 bei einer Datei gelesen und drwxrwsr-x als 2775 bei einem Verzeichnis. Die ACL-Markierung +, der Punkt für den Sicherheitskontext und das @ von macOS werden verstanden. Sie können auch einen Operatorausdruck wie u+x oder go-w einfügen und sehen, welche Bits er ändert.Was bedeutet das + oder @ nach den Rechten?
+, dass die Datei eine POSIX-ACL mit Einträgen jenseits von Eigentümer, Gruppe und anderen hat – getfacl zeigt sie, und sie sind nicht Teil des Modus. Bei GNU ls bedeutet ein Punkt einen Sicherheitskontext, etwa den von SELinux. Unter macOS bedeutet @ erweiterte Attribute und + erweiterte Sicherheitsinformationen. Verhalten sich die Rechte trotz vernünftigem Modus seltsam, schauen Sie dort nach.Gibt es ein chmod-Äquivalent unter Windows?
icacls file /grant Users:(RX) ist der nächstliegende Befehl, und der Rechner zeigt die nächsten Rechte für Ihren Modus. In WSL funktioniert chmod auf dem Linux-Dateisystem normal, auf einem Windows-Laufwerk unter /mnt/c hat es aber kaum Wirkung, wenn das Laufwerk nicht mit der Option metadata eingehängt wurde.Was ergibt umask 022?
chmod +x. Probieren Sie im Reiter umask oben einen beliebigen Wert aus und öffnen Sie jedes Ergebnis im Rechner.Fehlt Ihnen etwas?Funktion oder neues Tool vorschlagen
Verwandte Tools
Passwort-Generator
Starke zufällige Passwörter, Passphrasen und PINs im Browser erzeugen, mit exakten Bits und Knackzeit
UUID-Generator
UUID v4, v7, v1, v5 und v3 oder GUIDs in großer Menge und in jedem Format erzeugen und Version und Zeitstempel einer UUID dekodieren
Binär-Übersetzer
Text in Binär und Binär in Text übersetzen: automatische Erkennung, Hex, Dezimal und Oktal
Base64 dekodieren & kodieren
Base64 dekodieren und kodieren: Text (UTF-8, URL-sicher), Bilder, PDFs und beliebige Dateien in Base64 oder eine Data-URI
Epoch-Konverter
Unix-Timestamps in ein Datum und Daten in Epoch-Zeit umrechnen, in jeder Zeitzone und mit Batch-Umrechnung
CSR- & Zertifikat-Decoder
CSR oder SSL-Zertifikat dekodieren: Subject, SANs, Schlüsselgröße, Gültigkeit, Aussteller, Fingerprint, Signaturprüfung und CSR-Zertifikat-Abgleich