Como eu me dou acesso ao / var / www para criar e editar arquivos e pastas sem 'sudo'? [duplicado]

4

Eu tenho uma pasta no meu servidor web /var/www . Eu preciso adicionar arquivos para a pasta, mas o sistema não vai me deixar a menos que eu use sudo .

É possível me dar acesso para modificar a pasta e seu conteúdo, para que eu não precise de sudo para criar arquivos e, portanto, posso usar um cliente FTP para fazer upload de arquivos diretamente para o servidor da web?

O servidor web é o Apache2, caso seja importante.

    
por Emil Rowland 24.03.2016 / 14:24

1 resposta

11

A pasta /var/www/ é tocada pelo sistema e não apenas pelos usuários / administradores, portanto, você não deve mexer com essas configurações no diretório /var/www , a menos que saiba o que está fazendo. Normalmente, com a forma como eu executo as coisas, eu faço diretórios específicos do site /var/www/ e, em seguida, me dou permissões lá, o que resolve a questão do sistema sobrescrevendo dados do site acidentalmente (geralmente não mexer com subpastas lá de sua própria criação).

Portanto, você pode preferir configurar uma pasta dentro de /var/www/ e modificar as configurações do DocumentRoot do site Apache para apontar o site para essa subpasta (digamos, /var/www/mysite/ ) e depois execute o comando commands para obter acesso de gravação e acesso de leitura ao servidor da web, bloqueando o acesso de outros usuários.

Primeiro, para criar a pasta, substituindo 'mysite' por qualquer nome que você deseje usar:

sudo mkdir /var/www/mysite

Em segundo lugar, permite acesso e o acesso ao servidor da Web. O Apache2 é executado como www-data por padrão.

sudo chown $USER:www-data /var/www/mysite

Em terceiro lugar, precisamos garantir que todos os arquivos criados na pasta recebam automaticamente www-data como o proprietário do grupo (para que possa realmente ler arquivos necessários ler); nós definimos o bit "SetGID" para isso. Também podemos impedir que outros usuários (exceto o superusuário e o servidor da Web) acessem a pasta também, caso haja senhas armazenadas nos dados que não devem ser expostos (consulte meu aviso na parte inferior da resposta):

sudo chmod g+s /var/www/mysite
sudo chmod o-rwx /var/www/mysite

Em quarto lugar, você tem que editar o seu site Apache. Você pode estar usando a configuração do site 'padrão', se você é novo para ele. Você precisará executar um conjunto de tarefas:

  1. Encontre o arquivo de configuração - geralmente em /etc/apache2/sites-enabled .
  2. Edite os arquivos de configuração - localize a linha DocumentRoot e modifique-a para dizer: DocumentRoot /var/www/mysite (substituindo 'mysite' pelo nome do diretório que você criou.
  3. Reinicie o Apache - sudo service apache2 restart .

Depois de fazer tudo isso, você poderá colocar os documentos em /var/www/mysite diretamente, sem sudo (para que o FTP / SFTP funcione), e o servidor da Web deve ter as permissões de acesso necessárias para tudo dentro do diretório do site.

(Aviso obrigatório de segurança de TI, porque sou uma pessoa de segurança de TI)

  

ATENÇÃO!

     

As permissões do site são muito ruins e, dependendo do que você está usando no site, pode ser quase impossível trabalhar sem muito mais trabalho e esforço. Existem também arquivos em alguns aplicativos da web que NÃO devem ser acessados pelo mundo fora do que você deve dar acesso.

     

Também é importante observar que os aplicativos da Web são vulneráveis a muitas explorações em potencial, por isso é essencial manter seu site atualizado com atualizações de software para o Apache, mas também atualizações para o software executado no site (WordPress, por exemplo).

    
por Thomas Ward 24.03.2016 / 14:41