Wie kann mein Internetbrowser Dateien in meine "Downloads" -Datei schreiben, wenn die Standardberechtigungen das "Schreiben" nicht zulassen?

14

Auf dem Terminal habe ich diesen Befehl verwendet:

stat Downloads

Die Berechtigungen für meinen Download-Ordner lauteten "drwxr-xr-x".

Bedeutet dies nicht, dass nur der Administrator und der Eigentümer den Ordner bearbeiten können? Wie würde der Browser etwas herunterladen und in den Ordner stellen, wenn er nicht über die Berechtigung verfügt, oder stellt Ubuntu fest, dass Sie dies dem Browser erlaubt haben?

Raffat
quelle
4
Ich vermute, wenn Sie eintreten ls -ld Downloads würden, würden Sie feststellen, dass Sie tatsächlich der Eigentümer Ihres Downloads-Ordners sind. Wenn Sie also Ihren Browser ausführen, versuchen Sie als Verzeichnisbesitzer, etwas in dieses Verzeichnis einzufügen.
Charles Green

Antworten:

20

Programme werden mit den Berechtigungen des Benutzers ausgeführt, der sie aufgerufen hat.
Wenn Sie also Ihren Browser starten, hat der Browserprozess die Rechte, die Sie zum Lesen, Ändern und Ausführen von Dateien benötigen.

Und da Sie der Eigentümer Ihres Downloads-Ordners sind, verfügt Ihr Benutzerkonto (normalerweise standardmäßig) über die vollständigen Rechte read / write / xecute . Deshalb hat Ihr Browser sie auch.

Um die Klärung stat Ausgabe (d rwx r-x r-x):

  • Der erste Buchstabe (hier:) dbeschreibt den Typ des Dateisystemobjekts, das Sie untersuchen. dbedeutet, dass Sie die Berechtigungen eines Verzeichnisses anzeigen. Wenn Sie eine Datei untersuchen, erhalten Sie -stattdessen eine. Es gibt auch andere Möglichkeiten, wie lzum Beispiel für einen Link. Weiter gibt es (laut @ Atsbys Kommentar) bfür Blockgeräte, cfür Zeichengeräte, pfür Pipes und wahrscheinlich noch mehr ...
    Hinweis zu Verzeichnisberechtigungen siehe *!
  • Die ersten drei Buchstaben rwxstehen für die Berechtigungen des Besitzers . Ein Buchstabe bedeutet, dass die jeweilige Zugriffsart gewährt wird, ein "-" bedeutet verweigert. -> Vollzugriff
  • Die zweiten drei Buchstaben stehen r-xfür die Berechtigungen der Benutzer, die Mitglieder der Gruppe des Besitzers sind . Es ist das gleiche "rwx" -Format wie oben. -> Nur Lese- und Ausführungsberechtigungen, kein Schreiben
  • Die letzten drei Buchstaben stehen r-xfür die Berechtigungen aller anderen Benutzer, die nicht der Eigentümer selbst und kein Mitglied der Eigentümergruppe sind. Immer noch dasselbe "rwx" -Format. -> auch nur Lese- und Ausführungsrechte, kein Schreiben

* Verzeichnisberechtigungen:
Beachten Sie, dass Verzeichnisberechtigungen andere Bedeutungen haben als Dateiberechtigungen. Für Verzeichnisse ... bedeutet
Lesezugriff (r) das Auflisten der Dateien ( lsBefehl) ,
Schreibzugriff (w) das Ändern des Verzeichnisinhalts (Erstellen, Löschen, Umbenennen von Dateien) und
Ausführen von Zugriff (x) das Eingeben des Verzeichnisses ( cdBefehl oder Öffnen) mit dem Dateimanager)


Erweiterte Ausführungsberechtigungen:

Manchmal finden Sie ein S, s, Toder two Sie würde eine erwarten x.

Es gibt SUID-Berechtigungen (Set User ID) und SGID- Berechtigungen (Set Group ID) , die die normalen Berechtigungen ersetzen, xwenn die Datei immer mit den Berechtigungen ihres Besitzers (SUID) oder ihrer Eigentümergruppe (SGID) ausgeführt werden soll. Bei SUID wird die xder Benutzerberechtigungen (erster Block) ersetzt, bei SGID die xder Gruppenberechtigungen (zweiter Block). Ein Großbuchstabe Ssteht für a -(Erlaubnis verweigert), ein kleiner sfür x(Erlaubnis erteilt).

Wenn der xdes dritten Blocks (die Berechtigungen anderer) durch ein T/ ersetzt wird t, bedeutet dies, dass das "Sticky Bit" gesetzt ist. Heutzutage wird es hauptsächlich verwendet, um das Löschen der Datei durch Benutzer ohne Schreibberechtigung zu verhindern. Auch hier Tentspricht ein Großbuchstabe a -(keine Ausführungsberechtigung für andere) ohne "Sticky Bit", während ein kleiner Buchstabe tfür gewährten Ausführungszugriff ( x) für andere steht.


Oktalnotation:

Die Berechtigungen können auch durch 3-4 Ziffern (Werte 0-8) dargestellt werden, was als Oktalnotation bezeichnet wird.
Normalerweise haben Sie 3 oder 4 Ziffern, wobei die erste Ziffer auf 0 gesetzt ist (z . B. 755oder 0755).

  • Die erste Ziffer (die bei 0 weggelassen werden kann) steht für die erweiterten Berechtigungsflags. Flag-Werte: SUID = 4, SGID = 2, Sticky = 1.
  • Die zweite Ziffer gibt den Status der Berechtigungsflags des Besitzers an (rwx; erster Berechtigungsblock in Zeichenfolgenformatierung). Merkerwerte: r = 4, w = 2, x = 1.
  • Die dritte Ziffer gibt den Status der Berechtigungsflags der Eigentümergruppe an (rwx; zweiter Berechtigungsblock in Zeichenfolgenformatierung). Merkerwerte: r = 4, w = 2, x = 1.
  • Die vierte Ziffer gibt den Status aller anderen Berechtigungsflags an (rwx; dritter Berechtigungsblock in Zeichenfolgenformatierung). Merkerwerte: r = 4, w = 2, x = 1.

Um den Ziffernwert zu berechnen, addieren Sie einfach die Flagwerte aller gesetzten Flags. Beispiele: rwx = 4 + 2 + 1 = 7, rx = 4 + 0 + 1 = 5


Quelle und zusätzliche Referenzen:
http://www.zzee.com/solutions/linux-permissions.shtml
http://www.informit.com/articles/article.aspx?p=1822622&seqNum=6
Bitte besuchen Sie diese Links für weitere Details , insbesondere über erweiterte Berechtigungen.

Byte Commander
quelle
1
+1, dsteht directoryübrigens für!
Kos
@kos Danke, ich werde dies hinzufügen. Was wären die anderen Möglichkeiten anstelle eines "d" an dieser Stelle?
Byte Commander
Keine, wenn es sich nicht um ein Verzeichnis handelt, handelt es sich in der Tat um eine Datei. Sie haben also immer entweder doder-
kos
3
@kos es gibt andere möglichkeiten, zum beispiel lfür einen softlink , bfür ein blockgerät , für ein zeichengerät c, pfür eine pipe ... das sind nur die, die ich kenne, es gibt wahrscheinlich mehr
Atsby
@Atsby Du hast recht, ich habe darüber gesprochen, lsals OP tatsächlich verwendet wurdestat
kos