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?
d
? (Da Sie nur 7 = 4 + 2 + 1 7 = 4 + 2 + 1 7 = 4 + 2 + 1 haben) 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 Funktionstat()
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 mitmknod
-
c
: Zeichenspezialdatei, kann auch mitmknod
erstellt werden (Beispiele siehe/dev
) -
d
: Verzeichnis, kann mitmkdir
- : symbolische Verknüpfung, kann erstellt werden mit
ln -s
-
p
: Named Pipe, kann mitmkfifo
-
s
erstellt werden: Socket, kann mitnc -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 (normalerweiseroot
) -
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 oderroot
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 Bitsuid
so konfiguriert werden, dass es analog zusgid
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 Optionsuiddir
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:
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:
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 vonchmod 1411
(dh derchmod
Befehl mit Argument1411
). - … 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.