Estou tentando alterar recursivamente a permissão de todos os arquivos e diretórios do meu projeto.
Encontrei um post no fórum magento dizendo que posso usar esses comandos:
find ./ -type f | xargs chmod 644
find ./ -type d | xargs chmod 755
chmod -Rf 777 var
chmod -Rf 777 media
Funcionou para find ./ -type d | xargs chmod 755
.
O comando find ./ -type f
retornou muitos arquivos, mas recebo chmod: access to 'fileXY.html' not possible: file or directory not found
em todos os arquivos, se eu executar find ./ -type f | xargs chmod 644
.
Como posso resolver isso?
PS: Eu sei que ele recomendou usar a permissão 777 para minha pasta var e media, o que é um risco de segurança, mas o que mais devemos usar?
Suponho que você esteja encontrando arquivos cujos nomes contêm caracteres que
xargs
os dividem, por exemplo , espaço em branco. Para resolver isso, supondo que você esteja usando uma versão defind
exargs
que suporte as opções apropriadas (que se originaram nas variantes GNU e não são especificadas pelo POSIX), você deve usar os seguintes comandos:ou melhor ainda,
que tem as vantagens de ser mais curto, usar apenas um processo e ser suportado pelo POSIX
chmod
(consulte esta resposta para obter detalhes).Sua pergunta sobre
media
evar
é bastante ampla, se você estiver interessado em respostas específicas, sugiro que faça uma pergunta separada com mais informações sobre qual é o seu uso dos diretórios.Que tal:
esta é a solução portátil canônica que lida até mesmo com novas linhas em nomes de arquivos.