

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

# AppSpec Bagian 'izin' (EC2/hanya penerapan di lokasi)
<a name="reference-appspec-file-structure-permissions"></a>

`'permissions'`Bagian ini menentukan bagaimana izin khusus, jika ada, harus diterapkan ke file dan directories/folders di `'files'` bagian setelah mereka disalin ke instance. Anda dapat menentukan beberapa `object` instruksi. Bagian ini opsional. Ini berlaku untuk Amazon Linux, Ubuntu Server, dan instans RHEL saja.

**catatan**  
`'permissions'`Bagian ini digunakan hanya untuk penerapan EC2/On-premise. Ini tidak digunakan untuk penyebaran AWS Lambda atau Amazon ECS.

Bagian ini memiliki struktur sebagai berikut:

```
permissions:
  - object: object-specification
    pattern: pattern-specification
    except: exception-specification
    owner: owner-account-name
    group: group-name
    mode: mode-specification
    acls: 
      - acls-specification 
    context:
      user: user-specification
      type: type-specification
      range: range-specification
    type:
      - object-type
```

Instruksi adalah sebagai berikut:
+ `object` – Wajib. Ini adalah satu set objek sistem file (file atau direktori/folder) yang izin yang ditentukan diterapkan setelah objek sistem file disalin ke instance.

  Tentukan `object` dengan string.
+ `pattern` – Opsional. Menentukan pola untuk menerapkan izin. Jika tidak ditentukan atau ditentukan dengan karakter khusus**"\$1\$1"**, izin diterapkan ke semua file atau direktori yang cocok, tergantung pada file. `type` 

  Tentukan `pattern` dengan string dengan tanda kutip (“”).
+ `except` – Opsional. Menentukan file atau direktori yang pengecualian untuk. `pattern` 

  Tentukan `except` dengan daftar string yang dipisahkan koma di dalam tanda kurung siku.
+ `owner` – Opsional. Nama pemilik`object`. Jika tidak ditentukan, semua pemilik yang ada diterapkan ke struktur file atau direktori/folder asli tetap tidak berubah setelah operasi penyalinan.

  Tentukan `owner` dengan string.
+ `group` – Opsional. Nama grup untuk`object`. Jika tidak ditentukan, semua grup yang ada diterapkan ke struktur file atau direktori/folder asli tetap tidak berubah setelah operasi penyalinan.

  Tentukan `group` dengan string.
+ `mode` – Opsional. Nilai numerik yang menentukan izin yang akan diterapkan. `object` Pengaturan mode mengikuti sintaks perintah chmod Linux.
**penting**  
Jika nilainya termasuk nol di depan, Anda harus mengelilinginya dengan tanda kutip ganda, atau menghapus nol di depan sehingga hanya tersisa tiga digit.
**catatan**  
Notasi simbolik seperti tidak **u\$1x** didukung untuk pengaturan. `mode`

  Contoh:
  + `mode: "0644"`memberikan izin baca dan tulis kepada pemilik objek (6), izin hanya-baca ke grup (4), dan izin hanya-baca untuk semua pengguna lain (4).
  + `mode: 644`memberikan izin yang sama seperti. `mode: "0644"`
  + `mode: 4755`menetapkan atribut setuid (4), memberikan izin kontrol penuh kepada pemilik (7), memberikan izin baca dan eksekusi ke grup (5), dan memberikan izin baca dan eksekusi ke semua pengguna lain (5).

    Untuk contoh lainnya, lihat dokumentasi perintah Linux chmod.

    Jika mode tidak ditentukan, semua mode yang ada diterapkan ke file asli atau struktur folder tetap tidak berubah setelah operasi penyalinan.
+ `acls` – Opsional. Daftar string karakter yang mewakili satu atau lebih entri daftar kontrol akses (ACL) yang diterapkan. `object` Misalnya, **u:bob:rw** mewakili izin baca dan tulis untuk pengguna**bob**. (Untuk contoh lainnya, lihat contoh format entri ACL dalam dokumentasi `setfacl` perintah Linux.) Anda dapat menentukan beberapa entri ACL. Jika tidak `acls` ditentukan, apa pun yang ada ACLs diterapkan ke file atau directory/folder struktur asli tetap tidak berubah setelah operasi penyalinan. Ini menggantikan yang ada ACLs.

  Tentukan `acls` dengan tanda hubung (-), diikuti oleh spasi, dan kemudian string (misalnya,`- u:jane:rw`). Jika Anda memiliki lebih dari satu ACL, masing-masing ditentukan pada baris terpisah.
**catatan**  
Menyetel pengguna yang tidak disebutkan namanya, grup yang tidak disebutkan namanya, atau entri ACL serupa lainnya menyebabkan file gagal. AppSpec Gunakan `mode` untuk menentukan jenis izin ini sebagai gantinya.
+ `context` – Opsional. Untuk instance yang diaktifkan Security-Enhanced Linux (SELinux), daftar label konteks yang relevan dengan keamanan untuk diterapkan ke objek yang disalin. Label ditentukan sebagai kunci yang berisi`user`,`type`, dan`range`. (Untuk informasi lebih lanjut, lihat SELinux dokumentasi.) Setiap kunci dimasukkan dengan string. Jika tidak ditentukan, label apa pun yang ada yang diterapkan pada file atau directory/folder struktur asli tetap tidak berubah setelah operasi penyalinan.
  + `user` – Opsional. SELinux Pengguna.
  + `type` – Opsional. Nama SELinux tipe.
  + `range` – Opsional. Penentu SELinux rentang. Ini tidak berpengaruh kecuali Multi-Level Security (MLS) dan Multi-Category Security (MCS) diaktifkan pada mesin. Jika tidak diaktifkan, `range` default ke. **s0**

  Tentukan `context` dengan string (misalnya,`user: unconfined_u`). Masing-masing `context` ditentukan pada garis terpisah.
+ `type` – Opsional. Jenis objek yang menerapkan izin yang ditentukan. `type`adalah string yang dapat diatur ke **file** atau**directory**. Jika **file** ditentukan, izin diterapkan hanya untuk file yang segera terkandung dalam `object` setelah operasi salinan (dan bukan untuk `object` dirinya sendiri). Jika **directory** ditentukan, izin diterapkan secara rekursif ke semua directories/folders yang ada di mana saja `object` setelah operasi penyalinan (tetapi tidak untuk `object` dirinya sendiri).

  Tentukan `type` dengan tanda hubung (-), diikuti oleh spasi, dan kemudian string (misalnya,`- file`).

## Contoh bagian 'Izin'
<a name="reference-appspec-file-structure-permissions-example"></a>

Contoh berikut menunjukkan cara menentukan `'permissions'` bagian dengan`object`,,`pattern`,`except`, `owner``mode`, dan `type` instruksi. Contoh ini hanya berlaku untuk Amazon Linux, Ubuntu Server, dan instans RHEL. Dalam contoh ini, asumsikan file dan folder berikut disalin ke instance dalam hierarki ini:

```
/tmp
  `-- my-app
       |-- my-file-1.txt
       |-- my-file-2.txt
       |-- my-file-3.txt
       |-- my-folder-1
       |     |-- my-file-4.txt
       |     |-- my-file-5.txt
       |     `-- my-file-6.txt
       `-- my-folder-2
             |-- my-file-7.txt
             |-- my-file-8.txt
             |-- my-file-9.txt
	           `-- my-folder-3
```

 AppSpec File berikut menunjukkan cara mengatur izin pada file dan folder ini setelah disalin:

```
version: 0.0
os: linux
# Copy over all of the folders and files with the permissions they
#  were originally assigned.
files:
  - source: ./my-file-1.txt
    destination: /tmp/my-app
  - source: ./my-file-2.txt
    destination: /tmp/my-app
  - source: ./my-file-3.txt
    destination: /tmp/my-app
  - source: ./my-folder-1
    destination: /tmp/my-app/my-folder-1
  - source: ./my-folder-2
    destination: /tmp/my-app/my-folder-2
# 1) For all of the files in the /tmp/my-app folder ending in -3.txt
#  (for example, just my-file-3.txt), owner = adm, group = wheel, and
#  mode = 464 (-r--rw-r--).
permissions:
  - object: /tmp/my-app
    pattern: "*-3.txt"
    owner: adm
    group: wheel
    mode: 464
    type:
      - file
# 2) For all of the files ending in .txt in the /tmp/my-app
#  folder, but not for the file my-file-3.txt (for example,
#  just my-file-1.txt and my-file-2.txt),
#  owner = ec2-user and mode = 444 (-r--r--r--).
  - object: /tmp/my-app
    pattern: "*.txt"
    except: [my-file-3.txt]
    owner: ec2-user
    mode: 444
    type:
      - file
# 3) For all the files in the /tmp/my-app/my-folder-1 folder except
#  for my-file-4.txt and my-file-5.txt, (for example,
#  just my-file-6.txt), owner = operator and mode = 646 (-rw-r--rw-).
  - object: /tmp/my-app/my-folder-1
    pattern: "**"
    except: [my-file-4.txt, my-file-5.txt]
    owner: operator
    mode: 646
    type:
      - file
# 4) For all of the files that are immediately under
#  the /tmp/my-app/my-folder-2 folder except for my-file-8.txt,
#  (for example, just my-file-7.txt and
#  my-file-9.txt), owner = ec2-user and mode = 777 (-rwxrwxrwx).
  - object: /tmp/my-app/my-folder-2
    pattern: "**"
    except: [my-file-8.txt]
    owner: ec2-user
    mode: 777
    type:
      - file
# 5) For all folders at any level under /tmp/my-app that contain
#  the name my-folder but not
#  /tmp/my-app/my-folder-2/my-folder-3 (for example, just
#  /tmp/my-app/my-folder-1 and /tmp/my-app/my-folder-2),
#  owner = ec2-user and mode = 555 (dr-xr-xr-x).
  - object: /tmp/my-app
    pattern: "*my-folder*"
    except: [tmp/my-app/my-folder-2/my-folder-3]
    owner: ec2-user
    mode: 555
    type:
      - directory
# 6) For the folder /tmp/my-app/my-folder-2/my-folder-3,
#  group = wheel and mode = 564 (dr-xrw-r--).
  - object: /tmp/my-app/my-folder-2/my-folder-3
    group: wheel
    mode: 564
    type:
      - directory
```

Izin yang dihasilkan adalah sebagai berikut:

```
-r--r--r-- ec2-user root  my-file-1.txt
-r--r--r-- ec2-user root  my-file-2.txt
-r--rw-r-- adm      wheel my-file-3.txt

dr-xr-xr-x ec2-user root  my-folder-1
-rw-r--r-- root     root  my-file-4.txt
-rw-r--r-- root     root  my-file-5.txt
-rw-r--rw- operator root  my-file-6.txt

dr-xr-xr-x ec2-user root  my-folder-2
-rwxrwxrwx ec2-user root  my-file-7.txt
-rw-r--r-- root     root  my-file-8.txt
-rwxrwxrwx ec2-user root  my-file-9.txt

dr-xrw-r-- root     wheel my-folder-3
```

Contoh berikut menunjukkan cara menentukan `'permissions'` bagian dengan penambahan `acls` dan `context` instruksi. Contoh ini hanya berlaku untuk Amazon Linux, Ubuntu Server, dan instans RHEL.

```
permissions:
  - object: /var/www/html/WordPress
    pattern: "**"
    except: [/var/www/html/WordPress/ReadMe.txt]
    owner: bob
    group: writers
    mode: 644
    acls: 
      - u:mary:rw
      - u:sam:rw
      - m::rw
    context:
      user: unconfined_u
      type: httpd_sys_content_t
      range: s0
    type:
      - file
```