Cygwin bemerkt
Dies ist eine Problemumgehung und keine Antwort.
Ich habe kürzlich ähnliche Probleme mit Cygwin gehabt. Die Ursache scheint eine falsche Konfiguration darin zu sein, wie Windows-Benutzer und -Gruppen Cygwin-Benutzern und -Gruppen zugeordnet werden. Insbesondere habe ich gesehen, dass die Registerkarte "Sicherheit" im Dialogfeld "Dateieigenschaften" Einträge für "Gruppe" oder "Benutzername" enthält, z. B. "Besitzer" und "Gruppe". Ich gehe davon aus, dass diese von Windows nicht unterstützt werden.
Es kann sich lohnen, sich das mkpasswd
Dienstprogramm anzusehen und sich mit Windows-ACLs vertraut zu machen, um dies dauerhaft zu beheben. Bisher konnte ich jedoch alle Dateiberechtigungsfehler beseitigen, indem ich die Windows-ACLs wie folgt auf die Standardwerte zurücksetze:
wraptor: ~/tmp/su/find-xargs $ icacls.exe . /reset /t processed file: . processed file: .\.search-dirs processed file: .\.test processed file: .\dirz processed file: .\foo processed file: .\moo processed file: .\sensors processed file: .\.test\test.java processed file: .\dirz\3.java processed file: .\foo\2.java processed file: .\moo\1.java processed file: .\sensors\light.java Successfully processed 12 files; Failed processing 0 files
Danach ist es manchmal notwendig, die Hierarchie zu durchlaufen und die Berechtigungsbits zurückzusetzen:
find . -type d -exec chmod 755 {} + find . -type f -exec chmod 644 {} +
Nach diesen Schritten befinden sich die Dateien korrekt im Besitz von Windows-Me, oder der Administratorbenutzer und native Windows-Programme können diese Dateien wie üblich lesen und schreiben.
Versuchen Sie eine Antwort
Ansonsten sollte umask erwähnt werden. Es wird in einer Benutzerumgebung (oder für einen Prozess in einem Programm) festgelegt und regelt die Berechtigungen der später erstellten Dateien und Ordner.
zB (bash)
umask 0022
Dadurch werden alle Dateien und Ordner mit den Berechtigungen 644 und 755 erstellt.
zB (Python)
$ cat moo.py import os for _ in ('0022', '0002', '0077'): os.umask(int(_, 8)) with open('moo.f-%s' % _, 'w') as f: f.writelines("moo\nfoo") $ python moo.py; ll moo.f-* -rw-rw-r-- 1 1K 2013-07-24 07:46 moo.f-0002 -rw-r--r-- 1 1K 2013-07-24 07:46 moo.f-0022 -rw------- 1 1K 2013-07-24 07:46 moo.f-0077
PHP hat eine "identische" umask- Funktion.
Mehr Infos hier: man 3p umask