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.
- Adicione acesso de gravação
/var/www/html
ao 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)
Nota: Isso funciona porque sempre existe um grupo Unix criado para usuários.sudo chgrp <user> /var/www/html sudo chmod g+w -R /var/www/html
- 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
- Alterando o grupo para o usuário em execução (e concedendo acesso de gravação)
- Execute o serviço Apache quando o usuário fizer login por meio de WinSCP/SFTP. (link)
- 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)