AppSpec seção 'permissões' (EC2/Somente implantações locais) - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AppSpec seção 'permissões' (EC2/Somente implantações locais)

A seção 'permissions' especifica como as permissões especiais, se houver, deverão ser aplicadas aos arquivos e diretórios/pastas na seção 'files' depois que forem copiados para a instância. É possível especificar várias instruções object. Esta seção é opcional. Ela se aplica somente ao Amazon Linux, Ubuntu Server e RHEL instâncias.

nota

A 'permissions' seção é usada somente para implantações EC2 /On-Premises. Ele não é usado para implantações do AWS Lambda ou da AmazonECS.

Esta seção tem a seguinte estrutura:

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

As instruções são as seguintes:

  • object – obrigatório. Este é um conjunto de objetos do sistema de arquivos (arquivos ou diretórios/pastas) ao qual as permissões especificadas serão aplicadas depois que esses objetos forem copiados para a instância.

    Especifique object com uma string.

  • pattern: optional. Especifica um padrão para aplicar permissões. Se não forem especificadas ou se forem especificadas com os caracteres especiais "**", as permissões serão aplicadas em todos os arquivos ou diretórios correspondentes, de acordo com o type.

    Especifique pattern com uma string entre aspas ("").

  • except: optional. Especifica os arquivos ou diretórios que são exceções ao pattern.

    Especifique except com uma lista de strings separada por vírgulas entre colchetes.

  • owner: optional. O nome do proprietário do object. Se não for especificado, todos os proprietários existentes aplicados à estrutura original de arquivos ou diretórios/pastas permanecerão inalterados após a operação de cópia.

    Especifique owner com uma string.

  • group: optional. O nome do grupo para object. Se não for especificado, todos os grupos existentes aplicados à estrutura original de arquivos ou diretórios/pastas permanecerão inalterados após a operação de cópia.

    Especifique group com uma string.

  • mode: optional. Um valor numérico que especifica as permissões a serem aplicadas ao object. A configuração do modo segue a sintaxe do comando chmod do Linux.

    Importante

    Se o valor incluir um zero inicial, você deverá colocá-lo entre aspas duplas ou remover o zero inicial para que restem apenas três dígitos.

    nota

    Notação simbólica, como u+x, não é suportada para a configuração mode.

    Exemplos:

    • mode: "0644" concede permissões de leitura e gravação ao proprietário do objeto (6), permissões somente leitura ao grupo (4) e permissões somente leitura a todos os outros usuários (4).

    • mode: 644 concede as mesmas permissões que mode: "0644".

    • mode: 4755 define o atributo setuid (4), concede permissões de controle total ao proprietário (7), concede permissões de leitura e execução ao grupo (5) e concede permissões de leitura e execução a todos os outros usuários (5).

      Para obter mais exemplos, consulte a documentação do comando chmod do Linux.

      Se o modo não for especificado, todos os modos existentes aplicados à estrutura original de arquivos ou pastas permanecerão inalterados após a operação de cópia.

  • acls: optional. Uma lista de cadeias de caracteres representando uma ou mais entradas da lista de controle de acesso (ACL) aplicadas a. object Por exemplo, u:bob:rw representa permissões de leitura e gravação para o usuário bob. (Para obter mais exemplos, consulte exemplos ACL de formato de entrada na documentação de setfacl comandos do Linux.) Você pode especificar várias ACL entradas. Se não acls for especificado, qualquer estrutura existente ACLs aplicada ao arquivo original ou diretório/pasta permanecerá inalterada após a operação de cópia. Eles substituem os existentesACLs.

    Especifique uma acls com um traço (-), seguido por um espaço e uma string (por exemplo, - u:jane:rw). Se você tiver mais de umACL, cada um será especificado em uma linha separada.

    nota

    Definir usuários sem nome, grupos sem nome ou outras ACL entradas semelhantes faz com que o AppSpec arquivo falhe. Use mode para especificar esses tipos de permissões em vez disso.

  • context: optional. Para instâncias habilitadas para Security-Enhanced Linux (SELinux), uma lista de rótulos de contexto relevantes à segurança a serem aplicados aos objetos copiados. Os rótulos são especificados como chaves contendo user, type, e range. (Para obter mais informações, consulte a SELinux documentação.) Cada chave é inserida com uma string. Se não for especificado, qualquer rótulo existente aplicado à estrutura original de arquivos ou diretórios/pastas permanecerá inalterado após a operação de cópia.

    • user: optional. O SELinux usuário.

    • type: optional. O nome do SELinux tipo.

    • range: optional. O especificador SELinux de intervalo. Isso não tem efeito, a menos que a Segurança de Vários Níveis (MLS) e a Segurança de Várias Categorias (MCS) estejam ativadas na máquina. Se não estiver habilitado, range assumirá s0 como padrão.

    Especifique context com uma string (por exemplo, user: unconfined_u). Cada context é especificado em uma linha separada.

  • type: optional. Os tipos de objetos aos quais aplicar as permissões especificadas. type é uma string que pode ser definida como file ou directory. Se file for especificado, as permissões serão aplicadas somente nos arquivos que estiverem imediatamente contidos no object após a operação de cópia (e não no object em si). Se directory for especificado, as permissões serão aplicadas recursivamente em todos os diretórios/pastas que estiverem em qualquer lugar do object após a operação de cópia (mas não no object em si).

    Especifique o type com um traço (-), seguido por um espaço e uma string (por exemplo, - file).

Exemplo da seção 'permissions'

O exemplo a seguir mostra como especificar a seção 'permissions' com as instruções object, pattern, except, owner, mode e type. Este exemplo se aplica somente ao Amazon Linux, Ubuntu Server e RHEL instâncias. Neste exemplo, suponha que os seguintes arquivos e pastas sejam copiados para a instância nesta hierarquia:

/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

O AppSpec arquivo a seguir mostra como definir permissões nesses arquivos e pastas depois que eles são copiados:

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

As permissões resultantes são as seguintes:

-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

O exemplo a seguir mostra como especificar a seção 'permissions' com a adição das instruções acls e context. Este exemplo se aplica somente ao Amazon Linux, Ubuntu Server e RHEL instâncias.

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