View a markdown version of this page

POSIX-Berechtigungen in S3-Dateien - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

POSIX-Berechtigungen in S3-Dateien

POSIX-Dateisysteme erfordern Besitz und Berechtigungen für jede Datei. Amazon S3 speichert Daten als Objekte, deren Zugriff durch IAM-Richtlinien und Bucket-Richtlinien gesteuert wird, und speichert nicht nativ Dateieigentums- oder Berechtigungsattribute. S3 Files überbrückt diesen Unterschied, indem POSIX-Metadaten, einschließlich Eigentümer-, Gruppen- und Dateiberechtigungen, als benutzerdefinierte Metadaten für jedes S3-Objekt gespeichert werden. Wenn Sie eine Datei über S3 Files erstellen oder ändern, schreibt der Dienst alle Berechtigungsmetadaten automatisch. Wenn ein Objekt außerhalb des Dateisystems in Ihren S3-Bucket geschrieben wird, z. B. über die Amazon S3 S3-Konsole, AWS CLI oder AWS SDK, sind keine POSIX-Metadaten für dieses Objekt vorhanden. S3 Files weist diesen Objekten einen Standardwert für root:root Besitz und 644 Berechtigungen zu, sodass Benutzer ohne Root-Rechte die Datei lesen, aber nicht in sie schreiben können. Wenn diese Standardeinstellungen Ihren Zugriffsanforderungen entsprechen, sind keine Maßnahmen erforderlich. Wenn Ihre Anwendung dies erfordert, können Sie die Standardberechtigungen für diese Objekte überschreiben. In diesem Tutorial erfahren Sie, wie Sie benutzerdefinierte Berechtigungen anwenden.

Wie S3 Files POSIX-Metadaten speichert

S3 Files speichert POSIX-Informationen als benutzerdefinierte Metadaten für jedes Objekt. Die folgenden Metadatenschlüssel steuern den Besitz und die Berechtigungen:

Metadatenschlüssel Description Beispielwert
x-amz-meta-file-owner POSIX-Benutzer-ID (UID) 1000
x-amz-meta-file-group POSIX-Gruppen-ID (GID) 1000
x-amz-meta-file-permissions Bits für den Dateityp und die Zugriffsrechte (oktal) 0100644

Wenn ein Objekt keine POSIX-Metadaten hat, wendet S3 Files die folgenden Standardwerte an:

  • Dateien: root:root Besitz mit 0644 Berechtigungen () -rw-r--r--

  • Verzeichnisse: root:root Besitz mit 0755 Berechtigungen (drwxr-xr-x)

Unter diesen Standardeinstellungen können alle Benutzer Dateien lesen und Verzeichnisse durchqueren, aber nur der Besitzer (root) kann schreiben. Dateien sind standardmäßig nicht ausführbar.

POSIX-Metadaten für bestehende Objekte setzen

Verwenden Sie das folgende Verfahren, um POSIX-Besitzrechte und -Berechtigungen auf Objekte anzuwenden, die bereits in Ihrem Bucket vorhanden sind.

Schritt 1: Identifizieren Sie die UID und GID des Zielbenutzers

In diesem Beispiel hat der Zielbenutzer die UID ec2-user 1000:

$ id ec2-user
uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user)

Schritt 2: Aktualisieren Sie die Objektmetadaten mithilfe von copy-object

Der aws s3api copy-object Befehl kopiert das Objekt mit den aktualisierten Metadaten an Ort und Stelle. Ersetzen Sie BUCKET_NAME und OBJECT_KEY durch Ihre Werte.

Die --metadata-directive REPLACE Option ersetzt alle benutzerdefinierten Metadaten des Objekts. --content-typeInclude, um den Inhaltstyp des Objekts beizubehalten, da es auf die Standardeinstellung () REPLACE binary/octet-stream zurückgesetzt wird. Wenn Sie andere Metadatenfelder verwenden, schließen Sie diese in den --metadata Parameter ein.

aws s3api copy-object \ --bucket BUCKET_NAME \ --key OBJECT_KEY \ --copy-source BUCKET_NAME/OBJECT_KEY \ --metadata-directive REPLACE \ --content-type CONTENT_TYPE \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Schritt 3: Überprüfen Sie, ob die Metadaten angewendet wurden

Führen Sie den folgenden Befehl aus, um die Metadaten zu bestätigen:

aws s3api head-object --bucket BUCKET_NAME --key OBJECT_KEY

Die Antwort enthält Ihre POSIX-Metadaten:

{ "AcceptRanges": "bytes", "LastModified": "Mon, 18 May 2026 14:43:00 GMT", "ContentLength": 7214, "ETag": "\"abc123...\"", "ContentType": "image/png", "Metadata": { "file-owner": "1000", "file-group": "1000", "file-permissions": "0100644" } }

Schritt 4: Überprüfen Sie die Berechtigungen für das S3-Dateisystem

$ ls -ltr /mnt/s3files/
-rw-r--r--. 1 ec2-user ec2-user 7214 May 18 14:43 s3.png

Die Datei ist jetzt Eigentum von ec2-user und für den Zugriff ist kein Root-Benutzer mehr erforderlich.

Einstellung von POSIX-Metadaten bei neuen Uploads

Sie können POSIX-Metadaten einbeziehen, wenn Sie Objekte in Ihren Bucket hochladen.

Verwenden von aws s3 cp

aws s3 cp localfile.txt s3://BUCKET_NAME/localfile.txt \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Verwenden von aws s3api put-object

aws s3api put-object \ --bucket BUCKET_NAME \ --key localfile.txt \ --body localfile.txt \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'

Überprüfen Sie die Metadaten des hochgeladenen Objekts

aws s3api head-object --bucket BUCKET_NAME --key localfile.txt

Referenz zu den Berechtigungswerten

In der folgenden Tabelle sind allgemeine POSIX-Berechtigungswerte und ihre Anwendungsfälle aufgeführt.

Oktalwert Dateimodus Anwendungsfall
0100644 -rw-r--r-- Standarddatei: Besitzer read/write, andere nur lesbar
0100664 -rw-rw-r-- Geteilte Datei: Besitzer und Gruppe read/write, andere schreibgeschützt
0100755 -rwxr-xr-x Ausführbar: Besitzer hat vollen Zugriff, andere lesen und ausführen
0100666 -rw-rw-rw- World-writable Datei: alle Benutzer können lesen und schreiben
0040755 drwxr-xr-x Standardverzeichnis: Besitzer hat vollen Zugriff, andere lesen und durchqueren

Bewährte Methoden

Laden Sie Dateien wann immer möglich über das S3-Dateisystem hoch. S3 Files speichert automatisch den Besitz und die Berechtigungen der Datei als Objektmetadaten, sodass keine zusätzlichen Schritte erforderlich sind. Wenn Sie direkt in den S3-Bucket hochladen, fügen Sie POSIX-Metadaten in den Upload-Befehl ein, um sicherzustellen, dass von Anfang an die richtigen Eigentümer und Berechtigungen festgelegt sind.