我获得了一个新镜像的 Debian 6 32 位 VPS。在配置过程中,我尝试测试屏幕,因为我的许多脚本都使用它运行。
root 运行 screen 没有问题。但这当然是不可接受的。
我收到的消息是“没有更多 PTY。抱歉,找不到 PTY”
我谷歌了一下,发现这是一个常见的权限问题。我检查了 /dev/ptmx 和 /dev/pts 以及几个 /dev/ptyp* 描述符的权限。它们都有正确的读/写权限
:~$ ls -l /dev/ptmx
crw-rw-rw- 1 root tty 5, 2 Jul 31 07:35 /dev/ptmx
:~$ ls -l /dev/pty*
crw-rw-rw- 1 root tty 2, 0 Jul 31 01:19 /dev/ptyp0
crw-rw-rw- 1 root tty 2, 1 Jul 31 01:19 /dev/ptyp1
crw-rw-rw- 1 root tty 2, 2 Jul 31 01:19 /dev/ptyp2
/dev/pts 已挂载。从所有解决方案来看,我的非 root 用户似乎应该能够运行 screen。
我还能做什么吗?
编辑:
root@:~# dpkg -l screen
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version
ii screen 4.0.3-14 terminal multiplexor with VT100/ANSI terminal emulation
root@:~# ls -l /usr/bin/screen
-rwxr-xr-x 1 root utmp 328508 Jul 28 2009 /usr/bin/screen
答案1
经过与我的老同事的一番调查,他指出 pt_chown 权限存在问题。
这是针对 Centos 5/6 和 Debian 的解决方案,它们也可能主要在 VPS 图像上出现这个奇怪的问题。
我没有记录 pt_chown 的初始权限,但通过此命令更改它们后,我的 PTY 问题已解决。
chmod u=rwxs,g=rx,o=rx /usr/libexec/pt_chown; #/usr/lib/pt_chown on debian 6
chown root:root /usr/libexec/pt_chown; #/usr/lib/pt_chown on debian 6
答案2
对我来说(openVz 主机上的 vps),下面的方法可以解决问题:
cd /dev
sudo MAKEDEV ptyp ptyq