Sem gastar algum tempo com as várias permissões de arquivo do Windows, é difícil dizer exatamente o que está errado.
Felizmente, não preciso saber disso. A solução simples para resolver todos os problemas de permissão de arquivo é usar a opção noacl
para todas as montagens do Cygwin.
Abra /etc/fstab
em seu editor de texto favorito do Cygwin (ou, normalmente, C:\cygwin\etc\fstab
no seu Windows favorito, desde que ele ofereça suporte a terminações de linha do Unix [portanto, não o Notepad]). O meu anteriormente parecia assim:
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# This is default anyway:
# none /cygdrive cygdrive binary,posix=0,user 0 0
Se a última linha ainda estiver comentado, exclua o primeiro #
para que o sistema preste atenção. Pode não ser comentado, caso em que não haverá #
para excluir.
Em seguida, para a lista de opções (que é o binary,posix=0,user
bit), adicione ,noacl
ao final. A linha relevante no meu /etc/fstab
se pareceu com a seguinte:
none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
Em seguida, feche e reabra todos os seus aplicativos do Cygwin (talvez seja necessário reinicializar), e você deverá parar de ver qualquer problema de permissão.
Observe que, se você tiver feito coisas complicadas com seus pontos de montagem, talvez seja necessário editar várias linhas em /etc/fstab
, bem como quaisquer arquivos acumulados em /etc/fstab.d
. As mudanças que você precisará fazer serão as mesmas para todas elas.
A opção noacl
resultará no Cygwin ignorando completamente todas as listas de controle de acesso NTFS. Ele ainda vai olhar para o atributo somente leitura do DOS, mas isso não está ligado a nenhum usuário. Isso significa que ele não será capaz de dizer se um arquivo é baseado em permissões executáveis; em vez disso, supõe-se que qualquer arquivo que termine .bat
, .com
ou .exe
seja executável, assim como qualquer arquivo que comece com #!
.
Mais informações, se estiver interessado, no Guia do usuário do Cygwin: