sexta-feira, 22 de abril de 2016

Permissão de execução no Windows

Apesar de uso não muito difundido, o Windows tem o conceito de permissão de execução para arquivos e diretórios, de forma similar aos Unix-like: em diretórios, permite atravessá-los [1] e, em arquivos, permite sua execução se for um programa — os arquivos continuam podendo ser lidos, modificados, ou quaisquer sejam as demais permissões. A permissão em questão é "Percorrer pasta/executar arquivo".

Para manter a semântica de acesso ao sistema de arquivos compatível com o MS-DOS, o Windows NT mantém o comportamento de criar todos arquivos com permissão de execução por padrão.

Nas permissões simplificadas, RX (Ler & executar) é garantido a todos praticamente.

Há pela internet quem recomende removê-la recursivamente (via herança, de preferência) no diretório do perfil do usuário. No entanto, não me parece ser boa ideia, visto que provavelmente quebrará instaladores que usem %TEMP% e aplicativos que coloquem executáveis em %APPDATA% e/ou %LOCALAPPDATA%, como uTorrent e Chrome. Até pode ser uma opção em sistemas bem travados, onde nada mais será instalado. Ainda assim são necessários testes.

Abordagem mais segura é remover a permissão apenas em pastas específicas do perfil, em particular na Downloads.

icacls "%USERPROFILE%\Downloads" /deny *S-1-3-0:(OI)(IO)(X)

O comando adiciona uma permissão de negação (/deny) de execução ((X)) ao proprietário criador (*S-1-3-0), que aplica-se apenas a arquivos, deixando o diretório e subdiretórios de fora, e é propagada a todos objetos descendentes ((OI)(IO)).

Funciona bem.


A mensagem de erro é confusa. O Windows pôde sim acessar o arquivo, só não pôde executá-lo...

sábado, 2 de abril de 2016

Hora de migrar para o Squid 4

Ontem foi lançado o Squid 4.0.8 (beta). Por ser um código já mais ou menos estabilizado, decidi colocá-lo em produção. Veremos o que explode.

Notas de lançamento: Squid 4.0.8 release notes

O bug 3574 não foi totalmente consertado aparentemente. Reportado aqui. Como não mata por completo o daemon (o processo é executado novamente), dá para ir usando.

Meu pacote caseiro: Pacote do Squid para o CentOS 7