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

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

root以外のユーザーで画面セッションを開始しようとするたびに、「No more PTY」というメッセージが表示されます。答えとして。ルートと同じディレクトリにある同じコマンドは正常に機能します。

私は次の解決策を試しました。これ何も変更せずに投稿:

$ 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サーバーを起動すると、正常に動作しません。

答え1

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

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

後者の場合はできます

strings /usr/bin/screen

次のようなものを探してください:0123456789abcdef(多分より長いかもしれません)。見つからない場合は、Unix98擬似端末用にコンパイルされています。

もしあなたならする文字列を見つけるにはscreensetuid'd を実行する必要があるかもしれません。root(この方法でマスター/スレーブペアの権限と所有権を変更できます)。

質問は次のように実行されることを意味するので、root、次のプロセスを経た後、一般ユーザーに役立ちます。

sudo chmod u+s /usr/bin/screen

関連情報