
Estou tentando alterar recursivamente a permissão de todos os arquivos e diretórios do meu projeto.
Achei umpostar no fórum magentodizendo que posso usar estes 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 eu recebo chmod: access to 'fileXY.html' not possible: file or directory not found
todos os arquivos, se eu executar o 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 à segurança, mas o que mais devemos usar?
Responder1
Suponho que você esteja encontrando arquivos cujos nomes contêm caracteres que xargs
os dividem,por exemploespaço em branco. Para resolver isso, supondo que você esteja usando uma versão find
e xargs
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:
find . -type f -print0 | xargs -0 chmod 644
find . -type d -print0 | xargs -0 chmod 755
ou melhor ainda,
chmod -R a-x,a=rX,u+w .
que tem as vantagens de ser mais curto, utilizar apenas um processo e ser suportado porPOSIXchmod
(veresta respostapara detalhes).
Sua pergunta é media
bastante var
ampla. Se você estiver interessado em respostas específicas, sugiro que faça uma pergunta separada com mais informações sobre o uso dos diretórios.
Responder2
Que tal:
find ./ -type d -exec chmod 755 {} +
esta é a solução portátil canônica que lida até com novas linhas em nomes de arquivos.