Cygwin 발언
이는 답변이 아닌 해결 방법입니다.
최근에 Cygwin에서 비슷한 문제가 발생했습니다. 원인은 Windows 사용자 및 그룹이 cygwin 사용자 및 그룹에 매핑되는 방식이 잘못 설정된 것 같습니다. 특히 "파일 속성"대화 상자의 "보안"탭에 OWNER 및 GROUP과 같은 "그룹 또는 사용자 이름"항목이 포함되어 있습니다. 나는 이것들이 윈도우에 의해 지원되지 않는다고 가정한다.
이 mkpasswd
문제를 해결하기 위해 유틸리티를 살펴보고 Windows ACL을 읽는 것이 좋습니다. 그러나 지금까지 Windows ACL을 기본값으로 재설정하여 모든 파일 사용 권한 오류를 없앨 수있었습니다.
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
그 후에는 계층 구조를 탐색하고 권한 비트를 재설정해야 할 때가 있습니다.
find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +
이 단계가 끝나면 windows-me 또는 Administrator 사용자가 파일을 올바르게 "소유"하며 기본 Windows 프로그램은 평소와 같이이 파일을 읽고 쓸 수 있습니다.
답변 시도
그 외에도 umask 를 언급해야합니다. 사용자 환경 (또는 프로그램의 pocess)에 설정되며 이후에 생성되는 파일 및 폴더의 권한을 제어합니다.
eg (bash)
umask 0022
이렇게하면 644 및 755 권한으로 모든 파일과 폴더가 만들어집니다.
예 (파이썬)
$ 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는 "동일한" umask 함수를 가지고 있습니다.
더 많은 정보는 여기 : man 3p umask
d---------+
권한이 없다는 의미는 아닙니다.+
수단 간단한 권한으로 표시 할 수없는 디렉토리와 연관된 액세스 목록이 있음.