View a markdown version of this page

Izin POSIX dalam File S3 - Amazon Simple Storage Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Izin POSIX dalam File S3

Sistem file POSIX memerlukan kepemilikan dan izin pada setiap file. Amazon S3 menyimpan data sebagai objek dengan akses yang dikontrol oleh kebijakan IAM dan kebijakan bucket dan tidak menyimpan atribut kepemilikan file atau izin secara native. File S3 menjembatani perbedaan ini dengan menyimpan metadata POSIX, termasuk izin pemilik, grup, dan file, sebagai metadata yang ditentukan pengguna pada setiap objek S3. Saat Anda membuat atau memodifikasi file melalui File S3, layanan akan menulis semua metadata izin secara otomatis. Saat objek ditulis ke bucket S3 Anda di luar sistem file, misalnya melalui konsol Amazon S3, AWS CLI, AWS atau SDK, tidak ada metadata POSIX pada objek tersebut. File S3 memberikan objek tersebut nilai default root:root kepemilikan dan 644 izin, yang memungkinkan pengguna non-root untuk membaca file tetapi tidak menulis ke sana. Jika default ini memenuhi persyaratan akses Anda, tidak ada tindakan yang diperlukan. Jika aplikasi Anda memerlukannya, Anda dapat mengganti izin default pada objek tersebut. Tutorial ini berjalan melalui penerapan izin khusus.

Bagaimana File S3 menyimpan metadata POSIX

File S3 menyimpan informasi POSIX sebagai metadata yang ditentukan pengguna pada setiap objek. Kunci metadata berikut mengontrol kepemilikan dan izin:

Kunci metadata Deskripsi Nilai contoh
x-amz-meta-file-owner ID pengguna POSIX (UID) 1000
x-amz-meta-file-group ID grup POSIX (GID) 1000
x-amz-meta-file-permissions Jenis file dan bit izin (oktal) 0100644

Ketika sebuah objek tidak memiliki metadata POSIX, File S3 menerapkan default berikut:

  • File: root:root kepemilikan dengan 0644 izin () -rw-r--r--

  • Direktori: root:root kepemilikan dengan 0755 izin () drwxr-xr-x

Di bawah default ini, semua pengguna dapat membaca file dan melintasi direktori, tetapi hanya pemilik (root) yang dapat menulis. File tidak dapat dieksekusi secara default.

Mengatur metadata POSIX pada objek yang ada

Gunakan prosedur berikut untuk menerapkan kepemilikan dan izin POSIX ke objek yang sudah ada di bucket Anda.

Langkah 1: Identifikasi UID dan GID pengguna target

Untuk contoh ini, target pengguna adalah ec2-user dengan UID 1000:

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

Langkah 2: Perbarui metadata objek menggunakan copy-object

aws s3api copy-objectPerintah menyalin objek di tempat dengan metadata yang diperbarui. Ganti BUCKET_NAME dan OBJECT_KEY dengan nilai-nilai Anda.

--metadata-directive REPLACEOpsi ini menggantikan semua metadata yang ditentukan pengguna pada objek. Sertakan --content-type untuk mempertahankan jenis konten objek, karena REPLACE me-reset ke default (binary/octet-stream). Jika Anda menggunakan bidang metadata lainnya, sertakan dalam parameter. --metadata

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"}'

Langkah 3: Verifikasi metadata diterapkan

Jalankan perintah berikut untuk mengonfirmasi metadata:

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

Tanggapan tersebut mencakup metadata POSIX Anda:

{ "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" } }

Langkah 4: Verifikasi izin pada sistem file S3

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

File tersebut sekarang dimiliki oleh ec2-user dan tidak lagi membutuhkan root untuk mengakses.

Mengatur metadata POSIX pada unggahan baru

Anda dapat menyertakan metadata POSIX saat mengunggah objek ke bucket Anda.

Menggunakan aws s3 cp

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

Menggunakan 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"}'

Verifikasi metadata pada objek yang diunggah

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

Referensi nilai izin

Tabel berikut mencantumkan nilai izin POSIX umum dan kasus penggunaannya.

Nilai oktal Modus berkas Kasus penggunaan
0100644 -rw-r--r-- File standar: pemilik read/write, yang lain hanya-baca
0100664 -rw-rw-r-- File bersama: pemilik dan grup read/write, yang lain hanya-baca
0100755 -rwxr-xr-x Dapat dieksekusi: pemilik akses penuh, orang lain membaca dan mengeksekusi
0100666 -rw-rw-rw- World-writable file: semua pengguna dapat membaca dan menulis
0040755 drwxr-xr-x Direktori standar: pemilik akses penuh, orang lain membaca dan melintasi

Praktik terbaik

Unggah file melalui sistem file S3 bila memungkinkan. File S3 secara otomatis menyimpan kepemilikan dan izin file sebagai metadata objek, jadi tidak ada langkah tambahan yang diperlukan. Saat mengunggah langsung ke bucket S3, sertakan metadata POSIX dalam perintah upload untuk memastikan kepemilikan dan izin yang benar ditetapkan sejak awal.