AppSpec Abschnitt „Berechtigungen“ (nur für Bereitstellungen vor OrtEC2) - AWS CodeDeploy

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 Bereitstellungen vor OrtEC2)

'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 "**" 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+x 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: 644gewährt dieselben Berechtigungen wie. mode: "0644"

    • mode: 4755setzt 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

    Das Setzen unbenannter Benutzer, unbenannter Gruppen oder anderer ähnlicher ACL-Einträge führt dazu, dass die AppSpec Datei fehlschlägt. 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“

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