Passen Sie die Windows 7-Standardberechtigungen an die von Cygwin erstellten Dateistandards an

15

Ich verwende cygwin unter Windows 7 Professional.

Wenn ich neue Dateien wie MyNewFile.java erstelle, wird anscheinend die Standardberechtigung 755 festgelegt. Dies ist nicht das, was ich möchte. Ich möchte, dass es für reguläre Dateien 644 ist.

Es ist sehr ärgerlich, die Berechtigungen jedes Mal ändern zu müssen, wenn ich neue Dateien außerhalb des Cygwin-Terminals erstelle.

Gibt es in git eine Möglichkeit, * .myextension-Dateien automatisch zu ändern, um immer eine bestimmte Berechtigung zu haben?

Wenn nicht, gibt es eine Möglichkeit, alle * .myextension-Dateien unter einem Ordner rekursiv zu chmod 644 (ohne die Ordnerberechtigungen zu beeinflussen!)?

UmaN
quelle
1
Für eine Fallback-Lösung scheint dies zu funktionieren: find ./ -type f -name '* .myExtension' -exec chmod 644 {} \;
UmaN
1
Hast du umask ausprobiert?
Werner Henze
umask ist 0022. Wie bereits erwähnt, funktioniert das Erstellen über das Cygwin-Terminal einwandfrei. Das Problem tritt beim Kopieren von Dateien im Windows Explorer oder beim Erstellen von Dateien durch z. B. eine IDE beim Programmieren auf. Dies sollte irgendwie etwas damit zu tun haben, wie Windows Cygwin Windows-Berechtigungen für Ordner behandelt, nehme ich an ...
UmaN
4
@UmaN: Ein Kommentar zu Ihrem Kommentar: Es gibt keinen guten Grund zu sagen find ./ …. find . …funktioniert einwandfrei, und wenn Sie die Gewohnheit haben, die find ./ganze Zeit zu tippen, werden Sie eines Tages versehentlich tippen find / -exec rm …(oder entsprechend find /. …).
Scott
1
@UmaN, ich denke, Casey Crocketts Antwort wäre die Lösung, ja? Dies wird durch Folgendes
r_alex_hall

Antworten:

2

Sie müssen die Sicherheit des Ordners in Windows ändern, in den cygwin schreibt, damit er Ihrer cygwin-Konfiguration entspricht.

Zum Beispiel erhalte ich mit Standard-Sicherheit:

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

Nach dem Ändern der Sicherheit für den Ordner in Windows erhalte ich:

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

Ich habe festgestellt, dass der Windows-Sicherheitseintrag "Jeder" mit "Andere" in der Liste "Benutzergruppe Andere" im Befehl ls übereinstimmt. Entfernen Sie "Read & execute" und lassen Sie nur Read, damit dieser übereinstimmt. Der spezielle Sicherheitseintrag CREATOR GROUP passte für mich zum Teil "Gruppe". Wenn ich "Lesen & Ausführen" deaktiviert und "Nur Lesen" aktiviert habe, stimmten alle Verzeichnislisten jetzt mit der Sicherheit der von cygwin erstellten Datei überein.

Casey Crockett
quelle
0

Es ist nicht klar, was Sie hier erreichen möchten, aber wenn Sie versuchen, Ihre Cygwin-GIT-Ignorierberechtigungen zu aktivieren, gehen Sie wie folgt vor:

$ git config --local core.filemode false

Stacksharki
quelle