code

cygwin은 파일 권한을 000으로 설정합니다.

codestyles 2020. 12. 29. 07:06
반응형

cygwin은 파일 권한을 000으로 설정합니다.


/ cygwin / d / myfolder / 폴더가 있습니다. 그리고 거기에 파일을 저장할 때마다 cygwin에서 ls -la를 수행하면 파일에 000 권한이 부여 된 것을 볼 수 있습니다. 실제로 rsync로 인해 상당히 많은 문제가 발생합니다. 폴더를 내 서버에 추가하고 파일에 액세스 할 수 없습니다. 파일이 자동으로 합당한 권한을 얻도록하려면 어떻게해야합니까?


이 링크에서 답변을 읽어보십시오 : http://cygwin.1069669.n5.nabble.com/vim-and-file-permissions-on-Windows-7-td61390.html

저에게도 효과가 있었던 솔루션 :

/ etc / fstab을 편집 하고 파일 끝에 다음 줄을 추가합니다.

none /cygdrive cygdrive binary,noacl,posix=0,user 0 0

그런 다음 모든 Cygwin 프로세스를 닫고 새 터미널을 열고 파일에서 ls -l을 다시 엽니 다.

설명 : 기본적으로 Cygwin은 파일 시스템의 액세스 제어 목록 (ACL)을 사용하여 실제 POSIX 권한을 구현합니다. 일부 Windows 네이티브 프로그램 또는 프로세스는 Cygwin이 POSIX 권한을 000으로 계산하도록 ACL을 만들거나 수정할 수 있습니다. noacl 마운트 옵션을 사용하면 Cygwin은 파일 시스템 ACL을 무시하고 DOS 읽기 전용 속성에 따라 권한 비트의 하위 집합 만 위조합니다.


umask 명령을 사용하여 umask가 올바르게 설정되었는지 확인하십시오. umask가 0777이라고 말하면 새 파일의 권한에서 빼고 000 권한으로 끝납니다. 그 이상으로 고려해야 할 몇 가지 다른 가능성이있을 것입니다.

ID가 / etc / passwd 및 / etc / group에 올바르게 설정되지 않은 경우 ls가 예기치 않은 결과를 표시 할 수도 있습니다. 폴더의 권한을 확인하십시오. 또한 getfacl 명령으로 Windows 권한을 확인하십시오. 마운트 명령을 확인하십시오.


위의 답변에서 솔루션이 제안되었습니다.

/ etc / fstab을 편집하고 파일 끝에 다음 줄을 추가합니다.

없음 / cygdrive cygdrive 바이너리, noacl, posix = 0, user 000

그리고 그 대답에는 다음과 같은 주석이 있습니다.

내가 이것을 시도하면 내가 무엇을하든 상관없이 모든 파일은 -rw-r--r--입니다. 파일을 실행 파일로 표시 할 수 없습니다. 0644로 되돌아갑니다. (umask == 0022)

동일한 문제가 있었지만 Cygwin ksh 또는 mksh를 실행할 때 DOS 배치 파일 (* .bat)을 실행할 수없는 것으로 나타났습니다. :이 웹 사이트를 우연히 발견 http://pipeline.lbl.gov/code/3rd_party/licenses.win/cygwin-doc-1.4/html/faq/ 이 도움이 조언을 포함 :

mount -x를 사용하여 Cygwin이 마운트 지점 아래의 모든 파일을 실행 파일로 처리하도록 할 수 있습니다. 개별 파일과 디렉토리에 사용할 수 있습니다. 그러면 Cygwin은 파일이 실행 가능한지 확인하기 위해 파일을 읽지 않습니다.

그런 다음이 페이지 ( https://cygwin.com/cygwin-ug-net/using.html#mount-table) 와 상호 참조 하여 조언을 구하십시오.

cygexec-마운트 지점 아래의 모든 파일을 cygwin 실행 파일로 취급합니다.

내 fstab의 네 번째 필드에 cygexec를 추가했습니다. 해냈어. 내 .bat는 이제 ksh / mksh 내에서 실행 가능합니다. 수정 가능한 제어 권한이없는 Korn 쉘 스택 3 파일을 호출하는 Jenkins 작업을 실행하기 때문에 필요합니다. 실행하려면 .bat가 필요했습니다!

업데이트 : 위의 솔루션은 추가 테스트에서 필요한 것이 아닙니다. 이로 인해 javac 및 cl과 같은 일부 실행 파일이 이상하게 작동합니다 (유틸리티가 사용법을 인쇄하고 종료 됨). 'cygexec'대신 필요한 것이 'exec'라고 생각합니다. 같은 페이지 노트 :

exec-마운트 지점 아래의 모든 파일을 실행 파일로 취급합니다.


내 Win7 PC 파일은 일반적으로 ---------- + 1 David None 69120 Jun 17 13:17 mydoc.txt

나는 위의 모든 것을 시도했지만 .zshrc에 여전히 오래된 역사적인 마운트 항목이 있음이 밝혀졌습니다. 나는 이것들을 삭제했고 Bob의 삼촌 문제는 사라졌습니다!

참조 URL : https://stackoverflow.com/questions/5828037/cygwin-sets-file-permission-to-000

반응형