Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Autorizzazioni POSIX nei file S3
I file system POSIX richiedono proprietà e autorizzazioni su ogni file. Amazon S3 archivia i dati come oggetti con accesso controllato da policy IAM e bucket policy e non archivia nativamente la proprietà o gli attributi di autorizzazione dei file. S3 Files colma questa differenza archiviando i metadati POSIX, inclusi i permessi del proprietario, del gruppo e dei file, come metadati definiti dall'utente su ogni oggetto S3. Quando crei o modifichi un file tramite S3 Files, il servizio scrive automaticamente tutti i metadati delle autorizzazioni. Quando un oggetto viene scritto nel bucket S3 all'esterno del file system, ad esempio tramite la console Amazon S3, la AWS CLI AWS o l'SDK, non esistono metadati POSIX su quell'oggetto. S3 Files assegna a tali oggetti un valore predefinito di root:root proprietà e 644 autorizzazioni, che consente agli utenti non root di leggere il file ma non di scrivervi. Se queste impostazioni predefinite soddisfano i requisiti di accesso, non è richiesta alcuna azione. Se l'applicazione lo richiede, è possibile sovrascrivere le autorizzazioni predefinite su tali oggetti. Questo tutorial illustra come applicare le autorizzazioni personalizzate.
In che modo S3 Files archivia i metadati POSIX
S3 Files memorizza le informazioni POSIX come metadati definiti dall'utente su ciascun oggetto. Le seguenti chiavi di metadati controllano la proprietà e le autorizzazioni:
| Chiave per i metadati | Description | Valore di esempio |
|---|---|---|
x-amz-meta-file-owner |
ID utente POSIX (UID) | 1000 |
x-amz-meta-file-group |
ID di gruppo POSIX (GID) | 1000 |
x-amz-meta-file-permissions |
Tipo di file e bit di autorizzazione (ottali) | 0100644 |
Quando un oggetto non ha metadati POSIX, S3 Files applica le seguenti impostazioni predefinite:
File:
root:rootproprietà con autorizzazioni ()0644-rw-r--r--Elenchi:
root:rootproprietà con0755autorizzazioni ()drwxr-xr-x
In base a queste impostazioni predefinite, tutti gli utenti possono leggere i file e navigare tra le directory, ma solo il proprietario (root) può scrivere. Per impostazione predefinita, i file non sono eseguibili.
Impostazione dei metadati POSIX su oggetti esistenti
Utilizzate la seguente procedura per applicare la proprietà e le autorizzazioni POSIX agli oggetti già esistenti nel bucket.
Passaggio 1: Identifica l'UID e il GID dell'utente di destinazione
Per questo esempio, l'utente di destinazione è ec2-user con UID 1000:
$ id ec2-user uid=1000(ec2-user) gid=1000(ec2-user) groups=1000(ec2-user)
Fase 2: Aggiornare i metadati degli oggetti utilizzando copy-object
Il aws s3api copy-object comando copia l'oggetto al suo posto con i metadati aggiornati. Sostituisci BUCKET_NAME e OBJECT_KEY con i tuoi valori.
L'--metadata-directive REPLACEopzione sostituisce tutti i metadati definiti dall'utente sull'oggetto. Include --content-type per preservare il tipo di contenuto dell'oggetto, perché lo REPLACE reimposta al valore predefinito (). binary/octet-stream Se utilizzate altri campi di metadati, includeteli nel --metadata parametro.
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"}'
Fase 3: Verifica che i metadati siano stati applicati
Esegui il comando seguente per confermare i metadati:
aws s3api head-object --bucket BUCKET_NAME --key OBJECT_KEY
La risposta include i metadati POSIX:
{ "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" } }
Passaggio 4: verifica le autorizzazioni sul file system S3
$ ls -ltr /mnt/s3files/ -rw-r--r--. 1 ec2-user ec2-user 7214 May 18 14:43 s3.png
Il file è ora di proprietà di ec2-user e non richiede più l'accesso come root.
Impostazione dei metadati POSIX sui nuovi caricamenti
Puoi includere i metadati POSIX quando carichi oggetti nel tuo bucket.
Usare aws s3 cp
aws s3 cp localfile.txt s3://BUCKET_NAME/localfile.txt \ --metadata '{"file-owner":"1000", "file-group":"1000", "file-permissions":"0100644"}'
Usare 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"}'
Verifica i metadati sull'oggetto caricato
aws s3api head-object --bucket BUCKET_NAME --key localfile.txt
Riferimento ai valori di autorizzazione
La tabella seguente elenca i valori di autorizzazione POSIX comuni e i relativi casi d'uso.
| Valore ottale | Modalità file | Caso d’uso |
|---|---|---|
0100644 |
-rw-r--r-- |
File standard: proprietario read/write, altri di sola lettura |
0100664 |
-rw-rw-r-- |
File condiviso: proprietario e gruppo read/write, altri di sola lettura |
0100755 |
-rwxr-xr-x |
Eseguibile: accesso completo del proprietario, altri leggono ed eseguono |
0100666 |
-rw-rw-rw- |
World-writable file: tutti gli utenti possono leggere e scrivere |
0040755 |
drwxr-xr-x |
Cartella standard: accesso completo del proprietario, altri leggono e navigano |
Best practice
Carica i file tramite il file system S3 ogni volta che è possibile. S3 Files archivia automaticamente la proprietà e le autorizzazioni del file come metadati degli oggetti, quindi non sono necessari passaggi aggiuntivi. Quando carichi direttamente nel bucket S3, includi i metadati POSIX nel comando upload per garantire che la proprietà e le autorizzazioni corrette siano impostate fin dall'inizio.