Corresponder as permissões padrão do Windows 7 aos padrões de arquivo criados pelo Cygwin

15

Estou usando o cygwin no Windows 7 professional.

Quando crio novos arquivos, como MyNewFile.java, parece que a permissão padrão é definida como 755. Não é isso que eu quero. Quero que seja 644 para arquivos regulares.

É muito chato ter que alterar as permissões toda vez que crio novos arquivos fora do terminal cygwin (o cp do cygwin terminal funciona bem e apenas mantém as permissões existentes conforme o esperado, criando novos arquivos de dentro do cygwin works).

Como alternativa, existe alguma maneira no git de alterar automaticamente os arquivos * .myextension para sempre ter uma permissão específica?

Caso contrário, existe alguma maneira de recursivamente chmod 644 todos os arquivos * .myextension recursivamente em uma pasta (sem afetar as permissões da pasta!)?

UmaN
fonte
1
Para solução de fallback, isso parece funcionar: find ./ -type f -name '* .myExtension' -exec chmod 644 {} \;
Uman
1
Você tentou umask?
Werner Henze #
umask é 0022. Como dito, criar através do terminal cygwin funciona perfeitamente. O problema ocorre ao copiar arquivos no Windows Explorer ou criar arquivos através de, por exemplo, um IDE durante a programação. Isso deve de alguma forma ter algo a ver com a forma como o Windows cygwin trata permissões do Windows em pastas suponho ...
Uman
4
@UmaN: Um comentário no seu comentário: não há boas razões para dizer find ./ …; find . …funciona muito bem e, se você tem o hábito de digitar find ./o tempo todo, um dia desses você digitará find / -exec rm …(ou, equivalente find /. …) por acidente.
Scott
1
@UmaN, acho que a resposta de Casey Crockett seria a solução, sim? É apoiado por isso: cygwin.com/ml/cygwin/2011-02/msg00121.html
r_alex_hall

Respostas:

2

Você precisa alterar a segurança da pasta no Windows na qual o cygwin está gravando, para que corresponda à sua configuração do cygwin.

Por exemplo, com segurança padrão, recebo:

-rwxr-xr-x 1 400 401    0 Jul 29 14:48 New Text Document.txt

Depois de alterar a segurança na pasta no Windows, recebo:

-rwxr--r-- 1 400 401    0 Jul 29 14:54 New Text Document 2.txt

Descobri que a entrada de segurança do Windows "Todos" corresponde a "outro" na lista "Grupo de usuários outros" no comando ls. Remova "Read & execute", deixando apenas Read para esse corresponder. A entrada de segurança especial do CREATOR GROUP correspondeu à parte "group" para mim. Quando desativei "Ler e executar" e deixei apenas a opção Leitura ativada, agora toda a lista de diretórios correspondia à segurança do arquivo criado pelo cygwin.

Casey Crockett
fonte
0

Não está claro o que você está tentando alcançar aqui, mas se você estiver tentando fazer com que o cygwin git ignore as permissões, faça o seguinte:

$ git config --local core.filemode false

stacksharki
fonte