Alterei a propriedade do meu arquivo localhost /var/www/
e de suas subpastas e dei a permissão 777. No entanto, sempre que adiciono uma nova pasta, a nova pasta não recebe automaticamente essa permissão. Como posso conceder permissão a uma pasta 777 para sempre para que, se eu adicionar uma nova pasta ou arquivo, ela obtenha a mesma permissão?
permissions
Kamal
fonte
fonte
find . -type d -exec chmod 777 {} +
para alterar todos os diretórios para 777. Lembre-se de que você deve estar logado como root para obter melhores resultados e verifique se está na pasta.Respostas:
Permissões para arquivos recém-criados são definidas por umask
fonte
Você pode usar a opção recursiva a qualquer momento.
sudo chown -R username /var/www
fonte
Como outros já mencionaram , conceder permissões ao 777
/var/www
é uma péssima idéia, especialmente na produção.Uma solução melhor seria conceder permissões de gravação apenas aos usuários que precisam modificar os arquivos. Uma das maneiras de fazer isso é:
crie um novo grupo
adicione o (s) usuário (s) que precisam modificar os dados
/var/www
nesse grupoalterar recursivamente a propriedade
/var/www
desse grupoconjunto
umask
de/var/www
arquivos para todos os recém-criados são de propriedade do grupo que nós criamos.Outra opção seria usar a ACL, novamente, para conceder permissões de gravação apenas aos usuários que precisam delas.
Aqui estão instruções detalhadas sobre a falha do servidor .
Geralmente, o servidor da web ou outros serviços de rede ou contas de usuário do sistema não devem ter permissões de gravação nos arquivos servidos pelo servidor da web, pois isso abre a possibilidade de execução arbitrária de código.
fonte
Você deve editar
/etc/apache/envvars
como root com o seu editor de escolha.Exemplo: ALT+F2
gksudo gedit /etc/apache2/envvars
Vá para o final do arquivo e adicione uma linha
umask XXX
.Onde umask é o oposto binário do valor de permissões desejado.
Para 774, seria 003. Para 777 , seria uma má idéia 000.
Salve .
Reinicie o apache.
Exemplo:
sudo apache2ctl restart
Isso afetará apenas os arquivos / pastas criados recentemente pelo usuário apache.
Nota adicional, leitura e gravação é 6 no slot do usuário, grupo ou qualquer pessoa.
fonte
Além disso, alguma solução "pronta para uso" é configurar o servidor http para usar uma pasta diferente. Se você usa o Apache, simplesmente edite os arquivos de configuração. Dessa forma, você não precisa alterar as permissões para / var / www, o que pode ser uma má idéia (possíveis problemas de segurança).
E umask é a resposta para sua pergunta. Ele pode ser usado para restringir privilégios padrão para pastas e arquivos recém-criados. E os desenvolvedores de distribuição tendem a usá-lo para restringir o acesso a algumas pastas do sistema.
fonte
Eu acho que você deseja ter acesso de gravação
/var/www
para modificar arquivos e diretórios. Eu acho que a melhor solução é instalarapache2-mpm-itk
e, no arquivo de configuração do host virtual, adicione/etc/apache2/sites-available/default
:e execute
chown your-username\: /var/www -Rv
dessa maneira o apache para esse host virtual será executado com o seu UID / GID e você poderá editar arquivos. Mesmo arquivos criados pelo PHP terão seu UID / GIDfonte