web-dev-qa-db-ja.com

root以外のユーザーとして画面を起動すると「PTYはもうありません」

Root以外のユーザーとして画面セッションを開始しようとすると、「PTYはもうありません」というメッセージが表示されます。応答として。 rootと同じディレクトリにある同じコマンドは正しく機能します。

this postから解決策を試しましたが、何も変わりません:

$ ls /dev/pts  
$ cat /proc/sys/kernel/pty/nr
0
$ cat /proc/sys/kernel/pty/max
4096

アンマウントと再マウントでさえ役に立ちません:

$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime 0 0
$ umount devpts
$ mount devpts /dev/pts -t devpts -o mode=620

私の関連する質問: 画面を使用してMinecraftサーバーを起動すると正しく機能しません

4
Ragyal

BSD疑似端末は特定のスタイルの疑似端末を使用するようにコンパイルされているため(両方ではない)、screenにBSD疑似端末を使用させることができない可能性があります。バリエーションのある2つの主なフレーバーがあります。

  • 関数( openpty など)は、マスターデバイスとスレーブデバイスの名前を提供します
  • プログラムは、マスター/スレーブペアのリストを検索して未使用のペアを探します

後者の場合、あなたはすることができます

strings /usr/bin/screen

そして、次のようなものを見つけます:0123456789abcdef(おそらくもっと長い)。それが見つからない場合は、Unix98疑似端末用にコンパイルされています。

文字列をdo見つけた場合、screenはsetuid'dを実行する必要がある可能性があります(例:root(マスター/スレーブペアの権限と所有権を変更できるようにするため)。

この質問は、rootとして実行されていることを示しているため、通常のユーザーは次のように動作する可能性があります。

Sudo chmod u+s /usr/bin/screen
4
Thomas Dickey