Centos - Deploy Web Application - Qual é a melhor maneira de usar uma conta de usuário não-Apache com SFTP/WinSCP

Centos - Deploy Web Application - Qual é a melhor maneira de usar uma conta de usuário não-Apache com SFTP/WinSCP

Tenho uma pergunta simples, porém, estou lutando para entender como fazer isso de maneira segura,

Tenho uma aplicação web baseada em PHP que roda em Linux (Centos7), tenho acesso de "usuário" com privilégio Sudo no servidor Linux.

O servidor web (Apache) é executado como um usuário "apache" com um grupo "apache",

O problema é que quando tento implantar aplicativos usando WinSCP, recebo erros de permissão negada, a ÚNICA maneira de resolver esse problema é fazer um

usermod -g apache myusername
chmod 775 /var/www/html

Não quero dar 775 para toda a pasta web, Acho que é um grande problema de segurança. Qual a forma mais segura de arquivar esse tipo de tarefa?

Como posso implantar meu aplicativo usando Winscp com minha conta de usuário, mas como usuário Apache? ou alguma outra sugestão sobre práticas comuns da indústria que sejam consideradas seguras?

Responder1

Existem várias maneiras recomendadas para resolver esse problema.

  1. Adicione acesso de gravação /var/www/htmlao usuário que faz login por meio de WinSCP/SFTP. Isso pode ser feito de várias maneiras.
    • Alterando o grupo para o usuário em execução (e concedendo acesso de gravação)
      sudo chgrp <user> /var/www/html
      sudo chmod g+w -R /var/www/html
      
      Nota: Isso funciona porque sempre existe um grupo Unix criado para usuários.
    • Criando um novo grupo unix contendo o apache e o usuário (e concedendo acesso de gravação)
      sudo groupadd <groupname>
      sudo chgrp <groupname> /var/www/html
      sudo chmod g+w -R /var/www/html
      
  2. Execute o serviço Apache quando o usuário fizer login por meio de WinSCP/SFTP. (link)
  3. Mova a raiz do documento apache de /var/www/html(simplesmente criando um link simbólico de /var/www/html para um diretório de propriedade do usuário de implantação ou atualizando a configuração do apache)

informação relacionada