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:rootBesitz mit0644Berechtigungen ()-rw-r--r--Verzeichnisse:
root:rootBesitz mit0755Berechtigungen (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.