下面引用自http://unix.stackexchange.com/questions/21280/difference-between-pts-and-tty的一段话
A tty is a native terminal device, the backend is either hardware or kernel emulated.
A pty (pseudo terminal device) is a terminal device which is emulated by an other program (example: xterm
, screen
, or ssh
are such programs). A pts is the slave part of a pty.
(More info can be found in man pty
.)
Short résumé:
A pty is created by a process through posix_openpt()
(which usually opens the special device /dev/ptmx
), and is constituted by a pair of bidirectional character devices:
-
The master part, which is the file descriptor obtained by this process through this call, is used to emulate a terminal. After some initialization, the second part can be unlocked with
unlockpt()
, and the master is used to receive or send characters to this second part (slave). -
The slave part, which is anchored in the filesystem as
/dev/pts/x
(the real name can be obtained by the master throughptsname()
) behaves like a native terminal device (/dev/ttyx
). In most cases, a shell is started that uses it as a controlling terminal.
更为细致的描述,可参见《unix环境高级编程》关于终端登录、伪终端登录、伪终端描述那几章.......(以后再补上)
Tips:通过了解原理后,我们可以限制远程登录用户:
vim /etc/sysctl.conf 增加 kernel.pty.max = 5//限制伪终端为3个 执行 sysctl -p