Vejo que meu usuário é um membro do grupo apache. Eu adicionei e confirmei através do seguinte
$ sudo usermod -a -G apache `whoami` # add my user to apache group
$ sudo chmod -R g+w . # permit group members to write
$ groups `whoami` # confirm I'm in the apache group
No entanto, quando tento executar um núcleo de atualização drush ou até mesmo cron cron
$ drush cc all
unlink(sites/default/files/css/css_71ba7c25a8d3c47c68a8e05608ae525c.css):[warning]
Permission denied file.inc:482
E o cache CSS nessa situação parece
$ ll
total 1536
drwxrwxr-x. 2 apache apache 12288 Nov 26 10:12 .
drwxrwxr-x. 11 apache apache 4096 Nov 24 20:35 ..
-rw-rw-r-- 1 apache apache 162269 Nov 26 10:06 css_00d5f4d7c5c92cd4f.css
-rw-rw-r-- 1 apache apache 158090 Nov 26 10:02 css_0605989692a2119d305.css
-rw-rw-r-- 1 apache apache 162269 Nov 26 10:02 css_0779dcac71ee9aa8e02d9e.css
Eu suporia que minha conta de usuário, que tem acesso ao sudo, deveria ser um membro do grupo do apache (ou www-data) e que a árvore de arquivos deveria permitir o acesso de gravação do grupo. Qualquer ajuda ou orientação na direção certa seria muito apreciada.
newgrp apache
sem sudo e tente novamenteRespostas:
Indiscutivelmente, uma abordagem muito mais direta é não atrapalhar as atribuições de grupo do usuário e executar o drush como usuário do servidor da web (ex: apache, www-data).
Use sudo:
ou no debian / ubuntu:
Crie um alias de comando:
Em seguida, para garantir que você sempre execute drush assim, adicione um alias:
ou no debian / ubuntu:
Agora, ao executar qualquer comando drush, sua senha será solicitada pelo sudo, e o comando será executado como usuário do servidor da web. Não há mais problemas com permissões para ler e gravar arquivos.
fonte
Embora a outra resposta seja informativa, agora uso a permissão adequada do usuário, conforme descrito em
Protegendo permissões e propriedade de arquivos
Que abre com
fonte
Quando eu corria drush, já que o
www-data
drush não estava mais disponível, pois meu $ PATH havia mudado .Como solução alternativa, você pode inserir todo o caminho para drush.
Por exemplo
Para obter o caminho do seu drush, você pode executar:
O que significa que você também pode executar:
o que elimina a necessidade de codificar o caminho no comando.
fonte