O Sudo não é a ferramenta certa para este trabalho. Ele controla quais comandos você pode executar, não quais arquivos você pode acessar.
A ferramenta certa para o trabalho são permissões de arquivo, com listas de controle de acesso se o usuário / grupo / usuário tradicional do Unix permissões não são suficientes.
Crie um grupo, vamos chamá-lo de webroot
e torná-lo o próprio diretório /var/www/html
e os arquivos aí existentes.
sudo addgroup webroot
chgrp -R /var/www/html
chmod -R g+ws /var/www/html
O s
bit nos diretórios faz com que os arquivos herdem a propriedade do grupo do diretório. Você também precisará garantir que os arquivos lá sejam graváveis em grupo.
Se você quiser acessar /var/www/html
com a conta que está usando para enviar arquivos, adicione essa conta ao grupo webroot
:
sudo adduser iusemagentonow webroot
Se você tiver problemas para manter a propriedade do grupo e a permissão de gravação do grupo em arquivos recém-criados, use a ACL em vez de chgrp
.
sudo setfacl -d -R group:webroot:rwX /var/www/html
sudo setfacl -R group:webroot:rwX /var/www/html
Tome cuidado para que os arquivos em /var/www/html
não possam ser gravados pelo usuário e grupo que está executando o Apache ou qualquer servidor da Web que você esteja usando. O usuário que está executando o servidor da Web não deve ter permissão para gravar nenhum arquivo, exceto os arquivos de dados que devem ser atualizados pelo aplicativo da Web. Em particular, não permita que o servidor da Web grave nenhum arquivo executável, pois isso facilita as explorações.