Grundlegendes zu UNIX-Berechtigungen und -Dateitypen

Ich habe nie wirklich verstanden, wie chmod bis heute funktioniert hat. Ich bin gefolgt Ein Tutorial, das mir eine große Sache erklärt hat.

Ich habe beispielsweise gelesen, dass Sie drei verschiedene Berechtigungsgruppen haben:

  • Eigentümer (u)
  • Gruppe (g)
  • alle (o)

Basierend auf diesen drei Gruppen weiß ich jetzt Folgendes:

  • Wenn die Datei dem Benutzer gehört, bestimmen die Benutzerberechtigungen den Zugriff .
  • Wenn die Gruppe der Datei mit der Gruppe des Benutzers identisch ist, bestimmt die Gruppenberechtigung den Zugriff.
  • Wenn der Benutzer nicht der Dateieigentümer ist und nicht In der Gruppe wird dann die andere Berechtigung verwendet.

Ich habe auch erfahren, dass Sie die folgenden Berechtigungen haben:

  • read (r)
  • schreiben (w)
  • ausführen ()

Ich habe ein Verzeichnis erstellt, um mein neu erworbenes Wissen zu testen:

mkdir test 

Dann Ich habe einige Tests durchgeführt:

chmod u+rwx test/ # drwx------ chmod g+rx test/ # drwxr-x--- chmod u-x test/ # drw-r-x--- 

Nachdem ich einige Zeit herumgespielt habe, glaube ich, dass ich endlich den Dreh raus habe von chmod und wie Sie die Berechtigung mit diesem Befehl festlegen.


Aber …

Ich habe noch einige Fragen:

  • Was macht Die d am Start steht für?
  • Wie lautet der Name und die Verwendung des enthaltenen Slots und welche anderen Werte kann er enthalten?

li> Wie kann ich es setzen und deaktivieren?

  • Was ist der Wert für dieses d? (Da Sie nur 7 = 4 + 2 + 1 7 = 4 + 2 + 1 7 = 4 + 2 + 1 haben)
  • Warum verwenden Leute manchmal 0777 statt 777, um ihre Berechtigungen festzulegen?
  • Da ich aber nicht mehrere Fragen stellen sollte, werde ich versuchen, sie zu stellen eine Frage.

    In UNIX-basierten Systemen wie allen Linux-Distributionen steht in Bezug auf die Berechtigungen der erste Teil (d) für und wofür Für diesen Teil der Berechtigungen verwenden?

    Kommentare

    • Bitte versuchen Sie beim nächsten Mal, nur eine Frage zu stellen. Mehrere Fragen sind normalerweise schlecht für die Referenzierung und fast nie alle gleichzeitig angesprochen.
    • @Kiwy Ich ‚ Es tut mir leid, ich dachte, ich ‚ würde es tun Es ist so, weil es sich um dasselbe Thema handelt. Wenn Sie möchten, können Sie einen besseren Titel für meine Frage vorschlagen, um die Referenz von ‚ zu verbessern.
    • Übrigens: der Wert für “ d “ ist 040000 – es befindet sich in Header-Dateien unter dem Namen S_IFDIR. ‚ verwendet es nicht, wenn Sie den Dateimodus einstellen, aber die Funktion stat() gibt tatsächlich den Wert 040750 für .
    • @jamesqf Jetzt, da ich verstehe, wie die Oktalcodes zugeordnet sind, ist es für mich ‚ einfacher, so darüber nachzudenken .
    • @Peter: Es gibt keine dummen Fragen – nur Dummköpfe, die ‚ nicht lernen, weil sie ‚ sind Angst zu fragen.

    Antwort

    Ich beantworte Ihre Fragen in drei Teilen: Dateitypen, Berechtigungen, und Anwendungsfälle für die verschiedenen Formen von chmod.

    Dateitypen

    Das erste Zeichen in ls -l output repräsentiert den Dateityp; d bedeutet, dass es sich um ein Verzeichnis handelt. Es kann nicht gesetzt oder deaktiviert werden, es hängt davon ab, wie die Datei erstellt wurde. Die vollständige Liste der Dateitypen finden Sie in der Dokumentation ls . Diejenigen, auf die Sie wahrscheinlich stoßen, sind

    • -: „normale“ Datei, die mit jedem Programm erstellt wurde, das eine Datei schreiben kann
    • b: Blockspezialdateien, normalerweise Festplatten- oder Partitionsgeräte, können mit mknod
    • c: Zeichenspezialdatei, kann auch mit mknod erstellt werden (Beispiele siehe /dev)
    • d: Verzeichnis, kann mit mkdir
    • : symbolische Verknüpfung, kann erstellt werden mit ln -s
    • p: Named Pipe, kann mit mkfifo
    • s erstellt werden: Socket, kann mit nc -U
    • D: Tür , erstellt von einigen Serverprozessen unter Solaris / openindiana.

    Berechtigungen

    chmod 0777 wird verwendet, um alle Berechtigungen in einer chmod Ausführung festzulegen, anstatt Änderungen mit usw.Jede der vier Ziffern ist ein Oktalwert, der eine Reihe von Berechtigungen darstellt:

    • suid, sgid und „sticky“ (siehe unten)
    • Benutzerberechtigungen
    • Gruppenberechtigungen
    • „andere“ Berechtigungen

    Das Oktal Der Wert wird als Summe der Berechtigungen berechnet:

    • „Lesen“ ist 4
    • „Schreiben“ ist 2
    • „Ausführen“ ist 1

    Für die erste Ziffer:

    • suid ist 4; Binärdateien mit diesem gesetzten Bit werden als Eigentümer ausgeführt (normalerweise root)
    • sgid ist 2; Binärdateien mit diesem Bit-Set werden als Eigentümergruppe ausgeführt (dies wurde für Spiele verwendet, damit hohe Punktzahlen gemeinsam genutzt werden können, aber in Kombination mit Schwachstellen in den Spielen ist dies häufig ein Sicherheitsrisiko), und Dateien, die in Verzeichnissen mit diesem Bit-Set erstellt wurden, gehören zu Die Eigentümergruppe des Verzeichnisses ist standardmäßig (dies ist praktisch, um freigegebene Ordner zu erstellen). Dateien in Verzeichnissen mit diesem gesetzten Bit können nur von ihrem Eigentümer, dem Eigentümer des Verzeichnisses oder root gelöscht werden (ein allgemeines Beispiel finden Sie unter /tmp

    Weitere Informationen finden Sie unter auf der chmod Manpage . Beachten Sie, dass ich bei all dem andere Sicherheitsfunktionen ignoriere, die die Berechtigungen der Benutzer für Dateien ändern können (SELinux, Datei-ACLs …).

    Spezielle Bits werden je nach Dateityp unterschiedlich behandelt (regulär) Datei oder Verzeichnis) und das zugrunde liegende System. (Dies wird in der Manpage chmod erwähnt.) Auf dem System habe ich dies getestet (mit coreutils 8.23 auf einer ext4 Dateisystem, auf dem der Linux-Kernel 3.16.7-ckt2) ausgeführt wird, sieht wie folgt aus. Bei einer Datei werden die speziellen Bits immer gelöscht, sofern sie nicht explizit festgelegt wurden. chmod 0777 entspricht chmod 777, und beide Befehle löschen die speziellen Bits und geben Sie allen die vollen Berechtigungen für die Datei. Bei einem Verzeichnis werden die speziellen Bits niemals vollständig mit der vierstelligen numerischen Form gelöscht. Daher entspricht chmod 0777 auch chmod 777 aber es ist irreführend, da einige der speziellen Bits unverändert bleiben. (Eine frühere Version dieser Antwort hat dies falsch verstanden.) Um spezielle Bits in Verzeichnissen zu löschen, müssen Sie u-s, g-s und / oder verwenden o-t explizit oder geben Sie einen negativen numerischen Wert an, sodass chmod -7000 alle speziellen Bits in einem Verzeichnis löscht.

    In der Ausgabe ls -l erscheinen suid, sgid und „sticky“ anstelle von x Eintrag: suid ist s oder S Anstelle der x des Benutzers ist sgid s oder S anstelle der x der Gruppe, und“ sticky „ist t oder T anstelle der x anderer. Ein Kleinbuchstabe zeigt an, dass sowohl das spezielle Bit als auch das ausführbare Bit gesetzt sind. Ein Großbuchstabe zeigt an, dass nur das spezielle Bit gesetzt ist.

    Die verschiedenen Formen von chmod

    Aufgrund des oben beschriebenen Verhaltens werden die vollständigen vier Ziffern in chmod kann verwirrend sein (zumindest stellte sich heraus, dass ich verwirrt war). Dies ist nützlich, wenn Sie sowohl spezielle als auch Berechtigungsbits setzen möchten. Andernfalls werden die Bits gelöscht, wenn Sie eine Datei bearbeiten. Sie bleiben erhalten, wenn Sie ein Verzeichnis bearbeiten. chmod 2750 stellt also sicher, dass Sie mindestens sgid und genau u=rwx,g=rx,o= erhalten. chmod 0750 löscht jedoch nicht unbedingt die speziellen Bits.

    Verwenden von numerischen Modi anstelle von Textbefehlen ([ugo][=+-][rwxXst]) ist wahrscheinlich eher ein Fall von Gewohnheit und das Ziel des Befehls. Sobald Sie an die Verwendung numerischer Modi gewöhnt sind, ist es oft einfacher, den vollständigen Modus auf diese Weise anzugeben. und es ist nützlich, über Berechtigungen im numerischen Modus nachdenken zu können, da viele andere Befehle sie verwenden können (install, mknod … ).

    Einige Textvarianten können nützlich sein: Wenn Sie einfach sicherstellen möchten, dass eine Datei von jedem ausgeführt werden kann, wird chmod a+x dies tun, unabhängig davon, was passiert Die anderen Berechtigungen sind. Ebenso fügt +X die Ausführungsberechtigung nur hinzu, wenn eine der Ausführungsberechtigungen bereits festgelegt ist oder die Datei ein Verzeichnis ist. Dies kann nützlich sein, um Berechtigungen global wiederherzustellen, ohne dass Sonderfalldateien oder Verzeichnisse erforderlich sind. Daher entspricht chmod -R ug=rX,u+w,o= der Anwendung von chmod -R 750 auf alle Verzeichnisse und ausführbaren Dateien und chmod -R 640 auf alle anderen Dateien.

    Kommentare

    • Obwohl die anderen Antworten ziemlich gut waren, haben Sie wirklich einige Zeit damit verbracht, diese Frage zu beantworten. Vielen Dank.
    • On * BSD-Verzeichnisse verhalten sich so, als ob ihr sgid -Bit unabhängig von seinem tatsächlichen Wert immer gesetzt wäre. Unter FreeBSD kann das Bit suid so konfiguriert werden, dass es analog zu sgid funktioniert (dh Dateien und Unterverzeichnisse, die darin erstellt wurden, haben denselben Eigentümer wie das Verzeichnis ), sofern das zugrunde liegende Dateisystem dies unterstützt und mit der Option suiddir bereitgestellt wird.
    • +X fügt die Ausführungsberechtigung nur hinzu, wenn eine der Ausführungsberechtigungen bereits festgelegt ist oder die Datei ein Verzeichnis ist “ danke Sie @ stephen-kitt fehlt die “ ist bereits gesetzt “ Dokumentation hat mich wirklich für eine Schleife geworfen!

    Antwort

    Berechtigungen unter Linux sind daher sehr wichtig. Ich werde versuchen, eine kurze Erklärung abzugeben.

    Für Teile eines Dateimodus

    Jede Unix-Datei verfügt über eine Reihe von Berechtigungen, die bestimmen, ob Sie die Datei lesen, schreiben oder ausführen können. Wenn Sie ls -l ausführen, werden die Berechtigungen angezeigt. Hier ist ein Beispiel für eine solche Anzeige:

    -rw-r--r-- 1 user somegroup 7041 Mar 26 19:34 somefile 

    Ich füge ein Bild von Teilen eines Dateimodus hinzu:

    hier Bildbeschreibung eingeben

    Typ kann etwas anderes sein. Zum Beispiel:

    • d (Verzeichnis)
    • c (Zeichengerät)
    • l (Symlink)
    • p (benannt) Pipe)
    • s (Socket)
    • b (Blockgerät)
    • D (Tür, auf Linux-Systemen nicht üblich, aber portiert)

    Wenn Sie einige Berechtigungen für alle Verzeichnisse festlegen möchten, können Sie das R-Attribut verwenden, z. B.:

    chmod -R 777 /some/directory/ 

    Für chmod 777 vs 0777

    Der Befehl chmod erwartet normalerweise die Eingabe Um eine Oktalzahl zu sein, bezieht sich die führende Null auf den Wert des Sticky / Sgid / Suid-Bit-Tripletts. In C würde dies jedoch einen Unterschied machen, da 777 in 01411 (oktal) übersetzt würde, wodurch das Sticky-Bit gesetzt würde (siehe Auf der Manpage chmod(2) werden die Berechtigungen für den Eigentümer und das ausführbare Bit für die Gruppe und andere gelesen (was eine ziemlich seltsame Kombination ist).

    EDIT 1

    Ich habe ein anderes Bild über Linux-Berechtigungen gefunden und werde es anhängen, um es einfacher zu verstehen: UNIX-Dateiberechtigungen

    Kommentare

    • Sie irren sich in Bezug auf 777 und 0777. Beide sind oktal (Dezimal macht in sowieso keinen Sinn in diesem Fall), aber in vierstelliger Form setzt die erste Ziffer die speziellen Bits (klebrige & setuid).
    • @orion Gelegentlich ist es tatsächlich wahr, z.B In einem C-ähnlichen Code entspricht chmod(777) tatsächlich der Ausführung von chmod 1411 (dh der chmod Befehl mit Argument 1411).
    • … was im Fall des Syscall (oder seines Wrappers) und der Binärdatei mit demselben Namen sein kann etwas verwirrend.
    • Python Master Race hat dieses Rückwärtsproblem gelöst, indem alle “ -Nummern „, die mit 0 beginnen, gesperrt wurden Erzwingen, dass der Benutzer explizit ist, wenn er etwas anderes als eine Dezimalzahl möchte, z hex: 0x1FF, binär: 0b111111111 oder oktal: 0o777. PYTHON POWER
    • Bildquelle?

    Antwort

    d bedeutet, dass es sich um ein Verzeichnis handelt. Wenn Sie eine Datei haben, lautet diese -. Wenn es sich um einen Link handelt, finden Sie eine l. Es kann nicht gesetzt / deaktiviert werden.

    Wenn Sie 0777 als Berechtigungen verwenden, geben Sie jedem Benutzer / jeder Gruppe des Systems die volle Kontrolle (Lesen + Schreiben + Ausführen). Dies ist eine träge Lösung Probleme, wenn Sie Benutzer / Gruppen haben, die nicht auf Verzeichnisse / Dateien zugreifen können.

    Wenn Sie beispielsweise den Inhalt eines Verzeichnisses auflisten und Folgendes erhalten:

    -rw-r--r-- 1 root root 42596 jun 7 2012 preloadable_libintl.so

    prestoadable_libintl.so ist eine Datei, die dem Benutzer root und dem Gruppenstamm gehört. Der Eigentümer hat Lese- und Schreibzugriff, die Gruppe hat nur Lesezugriff und jeder andere Benutzer hat Lesezugriff. Dies kann als 644 übersetzt werden.

    Wenn ich es in 777 ändere, sieht es folgendermaßen aus:

    -rwxrwxrwx 1 root root 42596 jun 7 2012 preloadable_libintl.so

    Antwort

    Nachdem ich meine Frage hier beantwortet und einige Nachforschungen über das Ergebnis angestellt hatte, fand ich einen Artikel, der alles sehr gut erklärt. Ich möchte einige Teile dieses Artikels hier für zukünftige Referenzen teilen.

    Anzeigen von Berechtigungen

    Um mit chmod die Berechtigungen einer Datei oder eines Verzeichnisses zu ändern, müssen Sie zunächst die aktuellen Berechtigungen kennen Zugriffsmodus ist. Sie können den Inhalt eines Verzeichnisses im Terminal anzeigen, indem Sie cd in dieses Verzeichnis wechseln und dann Folgendes verwenden:

    $ ls -l 

    Der Schalter -l ist wichtig, da bei Verwendung von ls nur die Namen der Dateien oder Ordner im Verzeichnis angezeigt werden.

    Nachfolgend finden Sie ein Beispiel für die Verwendung von ls -l in meinem Ausgangsverzeichnis:

    total 128 drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures -rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest 

    Was die Spalten bedeuten

    Die erste Spalte ist der Typ jeder Datei:

    • - bezeichnet eine normale Datei.
    • d bezeichnet ein Verzeichnis, dh einen Ordner, der andere Dateien oder Ordner enthält.
    • p bezeichnet eine Named Pipe (auch bekannt als FIFO) ).
    • l bezeichnet einen symbolischen Link.

    Die Buchstaben danach sind die Berechtigungen, diese erste Spalte ist was Wir werden am meisten interessiert sein. Der zweite ist, wie viele Links in einer Datei sind, wir können ignorieren Sie es sicher. Die dritte Spalte hat zwei Werte / Namen: Der erste (in meinem Beispiel „Peter“) ist der Name des Benutzers, dem die Datei gehört. Der zweite Wert („Benutzer“ im Beispiel) ist die Gruppe, zu der der Eigentümer gehört (Weitere Informationen zu Gruppen).

    Die nächste Spalte gibt die Größe der Datei oder des Verzeichnisses in Byte und Informationen danach an sind die Daten und Zeiten, zu denen die Datei oder das Verzeichnis zuletzt geändert wurde, und natürlich der Name der Datei oder des Verzeichnisses.

    Was die Berechtigungen bedeuten

    Die ersten drei Buchstaben nach dem ersten - oder d sind die Berechtigungen, über die der Eigentümer verfügt. Die nächsten drei Buchstaben sind Berechtigungen, die für die Gruppe gelten. Die letzten drei Buchstaben sind die Berechtigungen, die für alle anderen gelten.

    Jeder Satz von drei Buchstaben besteht aus r w und x. r befindet sich immer an der ersten Position, w befindet sich immer an der zweiten Position und x steht immer an dritter Stelle. r ist die Leseberechtigung, w ist die Schreibberechtigung und x ist die Ausführung Genehmigung. Wenn anstelle eines dieser Buchstaben ein Bindestrich (-) vorhanden ist, bedeutet dies, dass die Erlaubnis nicht erteilt wurde. Wenn der Buchstabe vorhanden ist, wird sie erteilt.

    Ordner

    Bei Ordnern können die Modusbits wie folgt interpretiert werden:

    • r (read) steht Für die Fähigkeit, das Inhaltsverzeichnis des angegebenen Verzeichnisses zu lesen, steht
    • w (write) für die Fähigkeit, das Inhaltsverzeichnis des angegebenen Verzeichnisses zu schreiben (neue Dateien, Ordner erstellen; vorhandene Dateien, Ordner umbenennen, löschen) genau dann, wenn das Ausführungsbit gesetzt ist. Andernfalls ist diese Berechtigung bedeutungslos.
    • x (execute) steht für die Möglichkeit, das angegebene Verzeichnis mit dem Befehl cd einzugeben und auf Dateien und Ordner in diesem Verzeichnis zuzugreifen.

    Ändern von Berechtigungen mit dem Befehl chmod

    chmod ist ein Befehl unter Linux und anderen Unix-ähnlichen Betriebssystemen. Sie können die Berechtigungen (oder den Zugriffsmodus) einer Datei oder eines Verzeichnisses ändern.

    Sie können Berechtigungen auf zwei verschiedene Arten ändern: – Textbasiert chmod – Zahlenbasiertes chmod

    Textmethode

    Um den Berechtigungs- oder Zugriffsmodus einer Datei zu ändern, verwenden wir den Befehl chmod in ein Terminal. Nachfolgend finden Sie die allgemeine Struktur des Befehls:

    chmod who=permissions filename 

    Wo ist einer aus einer Reihe von Buchstaben und jeder gibt an, wem Sie die Berechtigung erteilen werden Sie lauten wie folgt:

    u - The user that owns the file. g - The group the file belongs to. o - The other users i.e. everyone else. a - all of the above - use this instead of having to type ugo. 

    Die Berechtigungen sind dieselben wie bereits beschrieben (r, w und x).

    Mit dem Befehl chmod können wir Berechtigungen mit + oder – zu einer vorhandenen Menge hinzufügen und von dieser entfernen Dies unterscheidet sich von den obigen Befehlen, bei denen die Berechtigungen im Wesentlichen neu geschrieben werden (dh eine Berechtigung von r-- in rw- geändert wird Sie müssen weiterhin r sowie w nach = in das chmod Befehl. Wenn Sie r verpasst haben, wird die Berechtigung r als solche entfernt werden mit dem =. Usin neu geschrieben g + und – vermeiden Sie dies, indem Sie die aktuellen Berechtigungen hinzufügen oder entfernen.

    Zahlenmethode

    chmod kann Berechtigungen auch mithilfe von Zahlen festlegen.

    Die Verwendung von Zahlen ist eine weitere Methode, mit der Sie die Berechtigungen für alle drei Eigentümer, Gruppen und andere gleichzeitig bearbeiten können. Diese Grundstruktur des Codes lautet wie folgt:

    chmod xxx file/directory 

    Wobei xxx eine dreistellige Zahl ist, wobei jede Ziffer zwischen 1 und 7 liegen kann. Die erste Ziffer gilt Für Berechtigungen für Eigentümer gilt die zweite Ziffer für Berechtigungen für die Gruppe und die dritte Ziffer für Berechtigungen für alle anderen.

    In dieser Notation haben die Werte r, w und x eine eigene Nummer value:

    r=4 w=2 x=1 

    Um eine dreistellige Nummer zu erhalten, müssen Sie überlegen, über welche Berechtigungen ein Eigentümer, eine Gruppe und ein Benutzer verfügen sollen, und dann insgesamt ihre Werte steigen. Angenommen, ich wollte dem Eigentümer eines Verzeichnisses Lese-, Schreib- und Ausführungsberechtigungen erteilen, und ich wollte alle anderen gruppieren, um nur Lese- und Ausführungsberechtigungen zu haben. Ich würde mir folgende numerische Werte einfallen lassen:

    Owner: rwx = 4+2+1=7 Group: r-x = 4+0+1=5 (or just 4+1=5) Other: r-x = 4+0+1=5 (or just 4+1=5) Final number = 755 $ chmod 755 filename 

    Dies entspricht der Verwendung der folgenden Werte:

    chmod u=rwx filename chmod go=rx filename 

    Die meisten Ordner / Verzeichnisse sind auf 755 eingestellt, um das Lesen und Schreiben und Ausführen für den Eigentümer zu ermöglichen, verweigern jedoch das Schreiben für alle anderen, und Dateien sind normalerweise 644, um das Lesen und Schreiben für den Eigentümer zu ermöglichen, aber nur das Lesen Für alle anderen wird auf den letzten Hinweis zum Fehlen von x-Berechtigungen bei nicht ausführbaren Dateien verwiesen – hier gilt das Gleiche.

    Kommentare

    • Das Kopieren von Text aus einem anderen Artikel ist zumindest unhöflich. Möglicherweise auch eine Urheberrechtsverletzung. Wenn es nicht nur kopiert wurde oder Sie wirklich kleine Teile verwendet haben (urheberrechtlich geschützt dank fairer Verwendung), fügen Sie bitte mindestens einen Link zu dem Artikel hinzu, auf den Sie verweisen / zitieren.

    Antwort

    Für die d-Fragen

    Hier wird der Unix-Dateityp angegeben. Standardmäßig hat Unix nur 3 Dateitypen. Dies sind:

    • - – Normale Datei
    • d – Verzeichnisdatei
    • Spezielle Datei (mit 5 Untertypen):
      • b – Blockdatei
      • c – Zeichengerätedatei
      • p – Benannte Pipe-Datei oder nur Pipe-Datei
      • l – Symbolische Linkdatei
      • s – Socketdatei

    Lesen Sie hier mehr: Dateitypen unter Linux / Unix ausführlich erklärt

    0777 vs 777

    Sticky-Bit angegeben oder nicht angegeben. Wenn das Sticky-Bit eines Verzeichnisses gesetzt ist, behandelt das Dateisystem die Dateien in solchen Verzeichnissen auf besondere Weise, sodass nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder der Root-Benutzer die Datei umbenennen oder löschen können. Ohne das Sticky-Bit Jeder Benutzer mit Schreib- und Ausführungsberechtigungen für das Verzeichnis kann enthaltene Dateien unabhängig vom Eigentümer der Datei umbenennen oder löschen.

    0777 legt 777 Dateiberechtigungen fest und das Sticky-Bit auf 0 – keine speziellen Modi.

    777 setzt 777 Dateiberechtigungen, ohne das Sticky-Bit zu ändern.

    Lesen Sie mehr: Sticky Bit und chmod

    Kommentare

    • Besser: aber es bietet immer noch nichts, was die anderen Antworten ‚ noch nicht behandelt haben …
    • ( 1) Es gibt drei grundlegende Dateitypen: einfache Dateien, Verzeichnisse und alles andere. Was? Woher bekommst du das? Im großen Schema der Dinge sind einfache Dateien und Verzeichnisse ziemlich ähnlich. Named Pipes und symbolische Links ähneln eher einfachen Dateien und Verzeichnissen als Gerätedateien oder Sockets. (2) Sie denken, chmod 777 löscht die Bits setuid, setgid und sticky nicht? Probieren Sie es aus.
    • Unix hat 7 Dateitypen, nicht 3.

    Antwort

    Zwei verwandte Dinge, die ich immer als verwirrend empfunden und oben nicht angesprochen habe, sind:


    I) was für ein „ 1 “ führt Folgendes aus:

    In chmod : Jede „1“ de ermöglicht eine Berechtigung, z. B. chmod 777 de ermöglicht alle, aber achten Sie darauf, weil
    in umask : Jede „1“ dis ermöglicht eine Berechtigung, z. B. umask 777 dis ermöglicht alle.


    II ) Datei „Eigentümer“ vs.Datei „Benutzer“ :

    Mit anderen Worten, es gibt Benutzer, die „besitzen“, und Benutzer, die .

    Jede Datei gehört gleichzeitig zwei Entitäten:

    • ein einzelner spezifischer Benutzer und
    • ein einzelner spezifischer Benutzer Gruppe (von einem oder mehreren Benutzern).

    Daher kann jede Datei sein verwendet von einem bestimmten Benutzer auf drei Arten:

    1) Direkt als Benutzer, dem das gehört Datei,
    2) in direkt als Mitglied der Gruppe, der die Datei gehört, und
    3 ) möglicherweise als jemand anderes.


    Andernfalls , die Antworten oben, mach einen tollen Job! Vielen Dank an alle.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.