Como conceder permissão de leitura e gravação a uma pasta e suas subpastas e arquivos?

10

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?

Kamal
fonte
O 777 é uma péssima ideia . Mas o uso da ACL pode se encaixar muito bem. Você pode ler esta solução na ACL para ver se ela funciona bem para você?
1
De maneira semelhante, para chmod todos os diretórios você pode usar 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.
Redy S

Respostas:

1

Permissões para arquivos recém-criados são definidas por umask

Vojtech Trefny
fonte
u pode escrever o comando para tornar / var / www / gravável e dar permissão para que eu obtenha a mesma permissão (777) para o site que adicionei recentemente.
kamal
1
Dar permissão ao 777 para o seu servidor da web não é bom.
precisa saber é
Você poderia, por favor, adicionar mais detalhes.
Saji89 13/08/12
@ Vojtech Trefny. No momento, o link não está funcionando. Diz 404 Não encontrado.
precisa saber é o seguinte
12

Você pode usar a opção recursiva a qualquer momento. sudo chown -R username /var/www

BZ1
fonte
Você precisa de mais votos!
Sheharyar 31/03
10

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/wwwnesse grupo

  • alterar recursivamente a propriedade /var/wwwdesse grupo

  • conjunto umaskde /var/wwwarquivos 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.

Sergey
fonte
2

Você deve editar /etc/apache/envvarscomo 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.

RobotHumans
fonte
0

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.

przemo_li
fonte
0

Eu acho que você deseja ter acesso de gravação /var/wwwpara modificar arquivos e diretórios. Eu acho que a melhor solução é instalar apache2-mpm-itke, no arquivo de configuração do host virtual, adicione /etc/apache2/sites-available/default:

<IfModule mpm_itk_module>
    AssignUserId your-username your-group
</IfModule>

e execute chown your-username\: /var/www -Rvdessa 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 / GID

Dawid
fonte