Abbina le autorizzazioni predefinite di Windows 7 alle impostazioni predefinite dei file creati da Cygwin


15

Sto usando Cygwin su Windows 7 Professional.

Quando creo nuovi file come MyNewFile.java sembra che l'autorizzazione predefinita sia impostata su 755. Questo non è quello che voglio. Voglio che sia 644 per i file regolari.

È molto fastidioso dover cambiare i permessi ogni volta che creo nuovi file al di fuori del terminale cygwin (cp dal terminale cygwin funziona bene e mantiene le autorizzazioni esistenti come previsto, anche creando nuovi file dall'interno di cygwin funziona).

In alternativa, c'è modo in git di cambiare automaticamente i file * .myextension per avere sempre un'autorizzazione specifica?

In caso contrario, c'è un modo per ricorsivamente chmod 644 tutti i file * .myextension ricorsivamente sotto una cartella (senza influire sui permessi delle cartelle!)?


1
Per la soluzione di fallback, questo sembra funzionare: find ./ -type f -name '* .myExtension' -exec chmod 644 {} \;
UmaN,

1
Hai provato umask?
Werner Henze,

umask è 0022. Come detto, la creazione attraverso il terminale Cygwin funziona perfettamente. Il problema si verifica quando si copiano file in Windows Explorer o si creano file tramite, ad esempio, un IDE durante la programmazione. Questo dovrebbe in qualche modo avere a che fare con il modo in cui Cygwin Windows tratta le autorizzazioni di Windows per le cartelle suppongo ...
UmaN,

4
@UmaN: un commento al tuo commento: non c'è un buon motivo per dirlo find ./ …; find . …funziona bene, e se hai l'abitudine di scrivere find ./sempre, uno di questi giorni digiterai find / -exec rm …(o, equivalentemente, find /. …) per caso.
Scott,

1
@UmaN, penso che la risposta di Casey Crockett sarebbe la soluzione, sì? È supportato da questo: cygwin.com/ml/cygwin/2011-02/msg00121.html
r_alex_hall

Risposte:


2

È necessario modificare la sicurezza della cartella in Windows su cui Cygwin sta scrivendo in modo che corrisponda alla configurazione di Cygwin.

Ad esempio, con la sicurezza predefinita, ottengo:

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

Dopo aver modificato la sicurezza sulla cartella in Windows, ottengo:

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

Ho scoperto che la voce di sicurezza di Windows "Everyone" corrisponde a "altro" nell'elenco "gruppo utenti altro" nel comando ls. Rimuovi "Leggi ed esegui", lasciando solo Leggi per quello corrispondente. La speciale voce di sicurezza di CREATOR GROUP corrisponde alla parte "gruppo" per me. Quando ho disabilitato "Leggi ed esegui" e ho lasciato abilitato solo Leggi, tutto l'elenco delle directory ora corrispondeva alla sicurezza del file creato da Cygwin.


0

Non è chiaro cosa stai cercando di ottenere qui, ma se stai cercando di far ignorare le tue autorizzazioni a Cygwin Git fai questo:

$ git config --local core.filemode false

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.