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

関連情報