Web application package guidelines (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Web application package guidelines. Data da última tradução: 2019-06-28. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Diretrizes de pacotes do Arch

32-bitCLRCMakeCrossDKMSEclipseElectronFonteFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustShellVCSWebWine

Essa página descreve como empacotar aplicativos web.

Usuário separado

Por motivos de segurança, cada aplicativo web deve ser executado como um usuário separado (sem privilégios) (p.ex., $pkgname).

Nota: Tradicionalmente, muitos aplicativos eram executados como o usuário/grupo http, o que pode ser considerado como inseguro, pois em tal cenário aplicativos podem ler os arquivos um dos outros.

Consulta as páginas man systemd-sysusers(8), sysusers.d(5), systemd-tmpfiles(8) e tmpfiles.d(5) para detalhes sobre como criar usuários com propriedade de arquivos e pastas para aquele usuário em um pacote.

Estrutura de diretórios

O layout segue o FHS.

  • /usr/share/webapps/$pkgname: O diretório de dados do aplicativo detém os arquivos do aplicativo web. Arquivos são de propriedade do root e são, portanto, somente-leitura pelo usuário e grupo do aplicativo $pkgname.
  • /etc/webapps/$pkgname: O diretório de configuração do aplicativo detém arquivos de configuração para o aplicativo (por link simbólico para o diretório de dados). Os arquivos localizados aqui têm que ir para vetor backup e são de propriedade do usuário e grupo $pkgname.
Atenção: Arquivos potencialmente contendo informações de autenticação devem ser protegidos (p.ex., não podem ser lidos por nenhum outro usuário ou grupo no sistema, exceto root e $pkgname)!
  • /run/$pkgname: O diretório de runtime do aplicativo (de propriedade do usuário e grupo $pkgname). Ele pode ser usado para soquetes (p.ex., em configurações facilitando ativação de soquete).
Nota: De acordo com as diretrizes do pacote em diretórios, /run não deve estar contido em um pacote. Use tmpfiles para adicionar o diretório com permissões correspondentes.
  • /var/cache/$pkgname: O diretório de cache do aplicativo (de propriedade do usuário e do grupo $pkgname). Ele (ou subpastas nele) é vinculado ao diretório de dados para aplicativos que requerem diretórios de cache que podem ser escritos.
  • /var/lib/$pkgname: O armazenamento persistente do aplicativo (de propriedade do usuário e grupo $pkgname). Ele (ou subpastas nele) é vinculado ao diretório de dados para aplicativos que exigem diretórios de armazenamento persistentes.