permissions - permite que dois usuários tenham acesso total ao diretório

4

Eu tenho um diretório do servidor da web localizado em /var/www/web . Dentro de um dos arquivos, digamos create_dir.php , estou criando um diretório com mkdir() . Estou recebendo a seguinte mensagem.

  

Aviso: mkdir (): Permissão negada em /var/www/web/create_dir.php na linha 122

Agora, posso executar esse arquivo quando sou o proprietário do arquivo ou diretório. Mas, quando não sou o proprietário, não posso editar os arquivos dentro do PhpStorm.

Meu usuário é chamado josh e o usuário apache2 é o padrão, www-data .

Eu essencialmente preciso fazer um grupo, ou um usuário especial / mágico que me permita rodar e editar os arquivos sempre.

Observação: olhei essa resposta de superusuário e ela não funcionou para mim. Eu corri este comando para criar o grupo:

sudo groupadd website

Eu executei estes comandos para adicionar os usuários:

sudo usermod -a -G website josh
sudo usermod -a -G website www-data

Eu executei este comando para adicioná-lo à pasta da Web:

sudo chgrp -R website /var/www/web

Eu executei este comando e, depois que recarreguei meu site, recebi uma mensagem de erro Proibida.

sudo chmod -R 770 /var/www/web

Então eu executei este comando para poder visualizar a página da Web:

sudo chmod -R 775 /var/www/web

E agora estou de volta à estaca zero.

Qualquer ajuda é apreciada.

    
por Josh Murray 10.11.2017 / 15:07

1 resposta

5

Os diretórios compartilhados no Linux podem ser confusos devido à propriedade e às permissões.

Para este diretório específico, /var/www/html/ já existe uma resposta aqui

Como evitar o uso do sudo ao trabalhar em / var / www?

Portanto, torne ambos os usuários um membro de www-data . IMHO não há necessidade de fazer um novo grupo.

Para gerenciar permissões e propriedade de arquivos, defina o grupo e o setGID

sudo chgrp -R www-data /var/www/html
sudo chmod 2770 /var/www/html 

Para detalhes, consulte o link

... if a directory’s set-group-ID bit is set, newly created subfiles inherit the same group as the directory ...

Reinicie o seu shell ou efetue o logout e volte para que a associação entre em vigor.

Se você precisar de mais controle, poderá usar o ACL, mas isso provavelmente é um exagero.

Para obter informações adicionais sobre a ACL, consulte link e link

Esse segundo link aborda especificamente essa pergunta exata, como compartilhar / var / www / html, usando setGID e ACL.

    
por Panther 10.11.2017 / 17:57