我在 CentOS 上运行的服务器上遇到了问题。CentOs 已升级到 6.4 版并包含所有更新。更新是根据官方存储库进行的。在运行 V-Server 的服务器上。
本地 /fstab
------------------------------------FSTAB------------------------------------------
Device Mountpoint FStype Options Dump Pass
/dev/sda1 /boot ext3 rw,noatime 1 2
/dev/vg0/root / ext3 rw,noatime 1 1
/dev/vg0/swap none swap sw 0 0
/dev/vg0/usr /usr ext3 rw,noatime 1 2
/dev/vg0/var /var ext3 rw,noatime 1 2
/dev/vg0/log /var/log ext3 rw,noatime 1 2
/dev/vg0/tmp /tmp ext3 rw,noatime,nosuid,noexec 1 2
/dev/vg0/home /home ext3 rw,noatime 1 2
/dev/vg0/vz /vservers ext3 rw,noatime 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
问题在于/dev/pts/ptmx
root@Hostname #/dev/pts > ls -la <br>
total 0<br>
drwxr-xr-x 2 root root 0 Sep 12 12:34 .
drwxr-xr-x 18 root root 3860 Sep 12 12:34 ..
crw--w---- 1 mmichalski tty 136, 0 Sep 12 12:53 0
c--------- 1 root root 5, 2 Sep 12 12:34 ptmx
可以看到它没有权限。同样的情况也发生在运行虚拟环境中。下面是虚拟环境的 fstab 文件
在 Vserver 上虚拟运行的 fstab
none /proc proc defaults 0 0
none /tmp tmpfs size=16m,mode=1777 0 0
none /dev/pts devpts gid=5,mode=620 0 0
什么原因导致该问题以及在哪里寻找解决方案?
答案1
节点的默认模式为ptmx
0000。请参阅man mount
并搜索ptmxmode
。您可以通过 来验证您的挂载选项mount
。
对于我的机器(不是 CentOS)
$ mount | grep devpts
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
那么模式确实是 0000。
$ ls -l /dev/pts/ptmx
c--------- 1 root root 5, 2 Sep 6 10:13 /dev/pts/ptmx
然而,/dev/ptmx
是重要的一个,它是由创建的udev
。
$ grep -ri ptmx /usr/lib/udev/*
/usr/lib/udev/rules.d/50-udev-default.rules:SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"
$ ls -l /dev/ptmx
crw-rw-rw- 1 root tty 5, 2 Sep 12 13:58 /dev/ptmx