Configurando permissões para FTP e Apache

10

Eu tenho um servidor web (Apache2) que eu acesso com o FileZilla.

No meu servidor web, eu tenho um diretório / home / admin / www que eu vinculei a / var / www. Para que eu possa acessá-lo com FTP. Isso funciona perfeito!

Mas toda vez que eu reiniciar meu servidor web, eu tenho que fazer a ligação novamente e novamente. Não posso dizer ao meu servidor da Web que esses mapas precisam ser vinculados para sempre? Também preciso redefinir todas as minhas permissões novamente, o que estou fazendo de errado?

Ontwikkelaar Bij Depurado
fonte

Respostas:

13

Uma solução melhor e mais segura (fico desconfortável com a Internet tendo acesso a uma pasta inicial de administradores!) É criar uma pasta raiz da web em /

Hora do terminal!

cd /
sudo mkdir /webroot
sudo groupadd webdev
sudo usermod -a -G webdev yourusername 
sudo chown www-data:webdev /webroot/

Agora aponte o apache para o seu novo documento root / webroot na parte inferior da sua configuração do apache. Isso pode ser encontrado aqui: /etc/apache2/apache2.conf

sudo nano /etc/apache2/apache2.conf

CTRL-O para salvar, CTRL-X para sair no nano, se você não estiver familiarizado.

Substitua simplesmente DocumentRoot /var/www/por/webroot/

Copie seus arquivos da web agora para o webroot.

sudo /etc/init.d/apache2 reload

O Apache agora deve ter reiniciado com todas as configurações carregadas.

Isso criou um diretório na raiz chamado webroot, de propriedade do apache2, e o proprietário do grupo é o novo webdev do grupo, ao qual seu usuário agora é anexado ao membro (isso não substitui nenhum grupo!). Isso permitirá que você edite os arquivos no FTP!

Esta é uma solução muito simples para um servidor apache de um site. É necessário mais trabalho se você planeja executar vários sites (criando pastas separadas para eles no webroot, por exemplo)

As vantagens disso são que, se alguém encontrar uma vulnerabilidade, ele será bloqueado na pasta webroot e não na sua pasta pessoal! Além disso, se você precisar permitir que mais usuários modifiquem o site, poderá adicionar o usuário ao grupo webdev comsudo usermod -a -G theirusername webdev

Espero que isto ajude!

Atenciosamente

Laice
fonte
Não é um problema :) você se importa se eu renomear o título para refletir melhor a resposta que eu dei?
Laice 17/10
Certamente não :-)
Ontwikkelaar Bij Depurado
por alguma razão, eu não estava recebendo esse usuário webdev quando usei o comando> sudo groupadd webdev. Tentei isso e ele pareceu funcionar. Bem adicionado o usuário no arquivo / etc / group de qualquer maneira. sudo usermod -a wwwlogin -G webdev
Benaiah
A culpa foi minha, na minha resposta troquei o usuário e o grupo inadvertidamente, isso foi corrigido por Damon, lição aprendida!
Laice
@ Damon, acho que você precisa definir permissões apropriadas para que o proprietário (www-data) e o grupo (webdev) tenham as mesmas permissões de um diretório: deve ser 775 (em vez do padrão 755) e 664 (em vez de 644 ) para arquivos.
Eduardo B.