GNU 화면이 Cygwin에서 작동하지 않습니다. 디렉토리에는 모드 700이 있어야 합니다.

GNU 화면이 Cygwin에서 작동하지 않습니다. 디렉토리에는 모드 700이 있어야 합니다.

Windows 10에 Cygwin을 설치했지만 screen실패했습니다.

$ screen
Directory '/tmp/uscreens' must have mode 777.

어떤 이유로든 권한을 변경할 수 없습니다.

$ chmod -R 777 /tmp
$ ls -hal /tmp/uscreens
total 384K
drwxr-xr-x 1 username Domain Users 0 May 22 17:37 .
drwxr-xr-x 1 username Domain Users 0 Jul 17 15:54 ..
drwxr-xr-x 1 username Domain Users 0 May 22 17:37 S-username

그래서 내가 완전히 제어할 수 있는 새 디렉터리를 만들었지만 다시 권한 문제가 발생했습니다.

$ SCREENDIR=/cygdrive/e/screens ./screen.exe
Directory /cygdrive/e/screens must have mode 700.
$ ls -hal /cygdrive/e/screens
total 8.0K
drwxr-xr-x 1 username Domain Users 0 Jul 17 16:18 .
drwxr-xr-x 1 username Domain Users 0 Jul 17 16:23 ..

또한 Windows 탐색기 세계에서 r-xr-x 권한을 제거하려고 시도했지만(이제는 사용자에게만 실제로 액세스 권한이 있다고 표시됨) Cygwin 관점에서는 여전히 동일하며 여전히 화면을 사용할 수 없습니다.

답변1

오늘도 같은 문제가 발생했는데 그 원인은 Windows 드라이브가 시스템에 마운트된 방식 때문이라고 생각합니다.

내 구성:

$ cat /etc/fstab
none                          /cygdrive             cygdrive  binary,posix=0,user,noacl 0 0

이는 noacl문제를 일으키는 부분입니다(사용 이유는 본 답변의 범위를 벗어납니다). screen -Rscreen 세션에 대해 시작(또는 다시 연결)을 실행하면 오류가 발생합니다.

$ screen -R
Directory /tmp/uscreens/S-myuser must have mode 700.
$ ls -ld /tmp/uscreens/S-myuser
drwxr-xr-x 1 myuser Domain Users 0 May 13 06:57 /tmp/uscreens/S-myuser/
$ chmod 700  /tmp/uscreens/S-myuser
$ ls -ld /tmp/uscreens/S-myuser
drwxr-xr-x 1 myuser Domain Users 0 May 13 06:57 /tmp/uscreens/S-myuser/
$ cd /tmp
$ pwd -P
/cygdrive/c/tmp

보시다시피, 우리는 /tmp심볼릭 링크 참조를 가지고 있습니다 C:/tmp(다시 말하지만, 이 응답의 범위를 벗어나는 이유로).

해결책은 SCREENDIRno 를 참조하도록 환경 변수를 설정하는 것이었습니다 /cygdrive. 내 설정에서는 이것이 내 홈 디렉터리였습니다.

$ SCREENDIR=~/.screens screen -R

screen아무 문제 없이 세션이 시작되었습니다 .

폴더가 다음 위치에 있지 않은지 확인하십시오 /cygdrive.

$ cd ~/.screens && pwd -P
/home/myuser/.screens
$ ls -ld ~/.screens
drwx------+ 1 myuser Domain Users 0 May 13 07:14 /home/myuser/.screens/

보시다시피 요청에 따르면 폴더의 모드는 700 이며 아래가 아닌 screen위치에 있습니다 ./home/cygdrive

관련 정보