

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.

# AppSpec Abschnitt „Berechtigungen“ (nur für EC2/lokale Bereitstellungen)
<a name="reference-appspec-file-structure-permissions"></a>

`'permissions'`In diesem Abschnitt wird festgelegt, wie spezielle Berechtigungen, falls vorhanden, auf die Dateien und auf den `'files'` Abschnitt nach dem Kopieren directories/folders in die Instanz angewendet werden sollen. Sie können mehrere `object`-Anweisungen angeben. Dieser Abschnitt ist optional. Sie gilt nur für Amazon Linux-, Ubuntu Server- und RHEL-Instances.

**Anmerkung**  
Der `'permissions'` Abschnitt wird nur für EC2/On-Premises-Bereitstellungen verwendet. Es wird nicht für AWS Lambda- oder Amazon ECS-Bereitstellungen verwendet.

Dieser Abschnitt hat die folgende Struktur:

```
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
```

Folgende Anleitungen sind zu beachten:
+ `object` – Erforderlich. Hierbei handelt es sich um eine Reihe von Dateisystemobjekten (Dateien oder Verzeichnisse/Ordner), auf die die angegebenen Berechtigungen angewendet werden, nachdem die Dateisystemobjekte auf die Instance kopiert wurden.

  Geben Sie `object` mit einer Zeichenfolge an.
+ `pattern` – Optional. Gibt ein Muster für das Anwenden von Berechtigungen an. Wenn nichts angegeben ist oder wenn mit den Sonderzeichen **"\$1\$1"** angegeben, werden die Berechtigungen abhängig von `type` auf alle übereinstimmenden Dateien oder Verzeichnisse angewendet. 

  Geben Sie `pattern` mit einer Zeichenfolge in Anführungszeichen ("") an.
+ `except` – Optional. Gibt alle Dateien oder Verzeichnisse an, die Ausnahmen für `pattern` sind. 

  Geben Sie `except` mit einer durch Komma getrennten Liste von Zeichenfolgen in eckigen Klammern an.
+ `owner` – Optional. Der Name des Eigentümers von `object`. Falls nicht anders angegeben, bleiben alle vorhandenen Eigentümer, die auf die ursprüngliche Datei- oder Verzeichnis-/Ordnerstruktur angewendet wurden, nach dem Kopiervorgang unverändert.

  Geben Sie `owner` mit einer Zeichenfolge an.
+ `group` – Optional. Der Name der Gruppe für `object`. Falls nicht anders angegeben, bleiben alle vorhandenen Gruppen, die auf die ursprüngliche Datei- oder Verzeichnis-/Ordnerstruktur angewendet wurden, nach dem Kopiervorgang unverändert.

  Geben Sie `group` mit einer Zeichenfolge an.
+ `mode` – Optional. Ein numerischer Wert, der die Berechtigungen angibt, auf die angewendet werden soll. `object` Die Moduseinstellung folgt der Linux-Befehlssyntax chmod.
**Wichtig**  
Wenn der Wert eine führende Null enthält, müssen Sie ihn mit doppelten Anführungszeichen umgeben oder die führende Null entfernen, sodass nur noch drei Ziffern übrig bleiben.
**Anmerkung**  
Symbolische Schreibweise wie **u\$1x** wird für die `mode` Einstellung nicht unterstützt.

  Beispiele:
  + `mode: "0644"`erteilt dem Besitzer des Objekts Lese- und Schreibberechtigungen (6), Schreibberechtigungen für die Gruppe (4) und Schreibberechtigungen für alle anderen Benutzer (4).
  + `mode: 644`gewährt dieselben Berechtigungen wie. `mode: "0644"`
  + `mode: 4755`setzt das setuid-Attribut (4), gewährt dem Besitzer Vollzugriff (7), erteilt der Gruppe Lese- und Ausführungsrechte (5) und erteilt allen anderen Benutzern Lese- und Ausführungsberechtigungen (5).

    Weitere Beispiele finden Sie in der Dokumentation zum Linux-Befehl chmod.

    Wenn der Modus nicht angegeben ist, bleiben alle vorhandenen Modi, die auf die ursprüngliche Datei- oder Ordnerstruktur angewendet wurden, nach dem Kopiervorgang unverändert.
+ `acls` – Optional. Eine Liste von Zeichenfolgen, die für einen oder mehrere Zugriffskontrolllisten (Access Control List, ACL)-Einträge stehen, die auf `object` angewendet werden. Beispielsweise steht **u:bob:rw** für Lese- und Schreibberechtigungen für den Benutzer **bob**. (Weitere Beispiele finden Sie unter den Beispielen für ACL-Eintragsformate in der Dokumentation zum Linux-Befehl `setfacl`.) Sie können mehrere ACL-Einträge angeben. Wenn nicht `acls` angegeben, bleiben alle vorhandenen Elemente, die auf die ursprüngliche Datei oder directory/folder Struktur ACLs angewendet wurden, nach dem Kopiervorgang unverändert. Diese ersetzen alle vorhandenen ACLs.

  Geben Sie einen `acls` mit einem Bindestrich (-), gefolgt von einem Leerzeichen, und dann einer Zeichenfolge (z. B. `- u:jane:rw`) an. Wenn Sie über mehr als eine ACL verfügen, wird jede jeweils in einer separaten Zeile angegeben.
**Anmerkung**  
Wenn Sie unbenannte Benutzer, unbenannte Gruppen oder andere ähnliche ACL-Einträge festlegen, schlägt die AppSpec Datei fehl. Verwenden Sie stattdessen `mode`, um diese Art von Berechtigungen festzulegen.
+ `context` – Optional. Für Security-Enhanced Linux (SELinux) -fähige Instances eine Liste sicherheitsrelevanter Kontext-Labels, die auf die kopierten Objekte angewendet werden sollen. Bezeichnungen werden als Schlüssel angegeben, die `user`, `type` und `range` enthalten. (Weitere Informationen finden Sie in der Dokumentation.) SELinux Jeder Schlüssel wird mit einer Zeichenfolge eingegeben. Falls nicht angegeben, bleiben alle vorhandenen Beschriftungen, die auf die Originaldatei oder directory/folder Struktur angewendet wurden, nach dem Kopiervorgang unverändert.
  + `user` – Optional. Der SELinux Benutzer.
  + `type` – Optional. Der SELinux Typname.
  + `range` – Optional. Der SELinux Bereichsbezeichner. Dieser hat nur dann eine Auswirkung, wenn Multi-Level Security (MLS) und Multi-Category Security (MCS) auf dem Computer aktiviert ist. Wenn diese Option nicht aktiviert ist, ist der `range`-Standardwert **s0**.

  Geben Sie `context` mit einer Zeichenfolge an (z. B. `user: unconfined_u`). Jeder `context` wird in einer separaten Zeile angegeben.
+ `type` – Optional. Die Arten von Objekten, auf die die angegebenen Berechtigungen angewendet werden sollen. `type` ist eine Zeichenfolge, die auf **file** oder **directory** eingestellt sein kann. Wenn **file** angegeben ist, werden die Berechtigungen nur auf Dateien angewendet, die sofort nach dem Kopiervorgang in `object` enthalten sind (und nicht auf `object` selbst). Wenn **directory** angegeben, werden die Berechtigungen rekursiv auf alle Objekte angewendet directories/folders , die sich `object` nach dem Kopiervorgang irgendwo befinden (aber nicht auf sich `object` selbst).

  Geben Sie `type` mit einem Bindestrich (-), gefolgt von einem Leerzeichen, und dann einer Zeichenfolge (z. B. `- file`) an.

## Beispiel für den Abschnitt „Berechtigungen“
<a name="reference-appspec-file-structure-permissions-example"></a>

Das folgende Beispiel zeigt, wie Sie den `'permissions'`-Abschnitt mit den Anweisungen `object`, `pattern`, `except`, `owner`, `mode` und `type` angeben. Dieses Beispiel gilt nur für Amazon Linux-, Ubuntu Server- und RHEL-Instances. In diesem Beispiel wird davon ausgegangen, dass die folgenden Dateien und Ordner auf die Instance in dieser Hierarchie kopiert werden:

```
/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
```

Die folgende AppSpec Datei zeigt, wie Sie Berechtigungen für diese Dateien und Ordner festlegen, nachdem sie kopiert wurden:

```
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
```

Es ergeben sich folgende Berechtigungen:

```
-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
```

Das folgende Beispiel zeigt, wie Sie den `'permissions'`-Abschnitt unter Hinzunahme der Anweisungen `acls` und `context` angeben. Dieses Beispiel gilt nur für Amazon Linux-, Ubuntu Server- und RHEL-Instances.

```
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
```