Permissões de arquivo PHP para a máquina de desenvolvimento

3

Acabei de atualizar minha máquina de desenvolvimento e mudei para um site em que estava trabalhando. No entanto, as permissões não parecem ter sido movidas corretamente. A máquina dev é uma máquina Linux que executa o Apache, onde todas as pastas e subpastas foram configuradas para 755 e todos os arquivos e arquivos dentro de todas as subpastas foram configurados para 644.

Em vez de eu ter que executar os comandos:

chmod 755

chmod 644

Existe uma maneira mais rápida de fazer isso sem ter que fazer cada arquivo e pasta individualmente?

    
por oshirowanen 11.05.2012 / 21:35

2 respostas

5

para arquivos:

find -type f -exec chmod 0644 {} \; 

para dirs:

find -type d -exec chmod 0755 {} \; 
    
por 11.05.2012 / 21:43
1

Se o problema é que os arquivos não são legíveis por todos:

chmod -R a+rX /var/www

(Observe o capital X , significando que apenas diretórios e arquivos executáveis por pelo menos um usuário são executáveis).

Se o problema é que os arquivos podem ser gravados por usuários que não sejam o proprietário:

chmod -R go-w /var/www

Se o problema é que os arquivos são executáveis e você não deseja ter nenhum arquivo executável: chmod -R a-x não o fará, porque os diretórios precisam permanecer executáveis (a permissão de execução de um diretório controla se você pode acessar arquivos dentro dele). Você precisa ser mais discriminador. Em zsh, você pode executar chmod a-x /var/www/**/*(.) , usando a sintaxe **/ para recorrer a subdiretórios e a . qualificador glob para corresponder apenas aos arquivos regulares. Em qualquer shell, você pode usar find :

find /var/www -type f -exec chmod a-x {} +
    
por 12.05.2012 / 05:02