Debian

以非 root 使用者身份啟動螢幕時“不再有 PTY”

  • October 28, 2015

每當我嘗試以非 root 使用者身份啟動螢幕會話時,我都會得到“不再有 PTY”。作為回應。與 root 在同一目錄中的相同命令可以正常工作。

我嘗試了這篇文章的解決方案,但它不會改變任何東西:

$ 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

我的相關問題:使用螢幕啟動我的世界伺服器無法正常工作

您很可能無法screen使用 BSD 偽終端,因為它被編譯為使用特定樣式的偽終端(從不同時使用兩者)。有兩種主要的風味變化:

  • 一個函式(例如openpty)提供主設備和從設備的名稱
  • 程序在主/從對列表中搜尋未使用的對

在後一種情況下,您可以執行

strings /usr/bin/screen

並找到類似這樣的內容:0123456789abcdef(可能更長)。如果你沒有找到,它是為 Unix98 偽終端編譯的。

如果您確實找到了該字元串,則可能screen必須執行 setuid’d,例如 to root(以便它可以修改主/從對的權限和所有權)。

由於該問題暗示它可以作為 執行**root**,因此它可能會在類似

sudo chmod u+s /usr/bin/screen

引用自:https://unix.stackexchange.com/questions/239223