管理Linux进程与终端
2018-11-07
Linux系统终端
通常我们将一套键盘鼠标以及显示器这样的输入输出设备称为一个终端,直接连接在电脑主机上的称为物理终端。在操作安装有Windows系统的电脑时,通常是只有一套物理终端并且只有一个操作界面。而Linux系统支持虚拟终端,在操作安装有Linux系统的计算机时,用户虽然面对的也是一套物理终端设备,但却可以通过虚拟终端打开多个互不干扰、独立工作的界面。
Linux中提供的虚拟终端默认有6个,其中第一个是图形界面,第二到第六个则是字符界面。可以通过Ctrl+Alt+F(1~ 6)组 合键在不同的虚拟终端之间进行切换。比如,安装有X Window的Linux系统启动之后,默认进入第一个虚拟终端中的图形界面,此时按下组合键Ctrl+Alt+F2就进入到了第二个虚拟终端,这就是一个字符界面了。
虚拟终端的缩写为tty,在字符界面下执行“tty”命令就可以显示用户当前所在的终端编号。
由于我们通常都是通过网络远程对Linux服务器进行管理,这种通过远程登录方式所打开的终端称为伪终端(pts)。比如我们通过Xshell远程登录到Linux系 统,然后同样执行tty命令,发现显示的结果为“/dev/pts/0”,表示这是系统启动的第一个伪终端(伪终端的编号从0开始)。
另外,如果Linux系统安装了X Window,那么在图形界面中,右键单击桌面空白处,选择“在终端中打开”,此时所打开的也是一个pts伪终端。但由于在生产环境中很少有人会这样操作,所以这种情况可以忽略不计。
总结一下,对于Linux系统而言,终端主要分为两类:
设置信息,执行分区格式化等操作。接下来会从分发点服务器下载“Install.wim”映像包,解压后启动系统安装程序,选择
从who命令的执行结果可以发现,有3个用户正在以root用户的身份登录系统。其中第一行信息没有显示终端,表明root用户是在本地登录,由于是本地登录,因而未显示IP地址。第二行信息表明root用户在远程的伪终端pts/0上登录,并显示了登录IP。第三行信息表明root用户在本地的虚拟终端tty2上登录,同样不显示IP地址。
下面我们在系统中创建一个名为hacker的账号,并利用该账号在某个终端上远程登录。
创建账号并设置密码:
更改用户hacker的密码。
passwd:所有的身份验证令牌已经成功更新。
然后在另外一台Kali系统中(IP地 址192.168.80.20)利用hacker账号远程登录Linux服务器(IP地址192.168.80.146):
登录成功之后,在Linux服务器中执行who命令查看当前登录用户。可以发现有一个可疑用户正在IP地址为192.168.80.20的客户端上远程登录,其所在终端编号为pts/1。
下面我们将这个可疑用户踢出系统。
首先需要根据可疑用户所在终端查找出该终端所对应的进程,可以执行“ps aux| grep pts/1”命令。从命令的执行结果可以看到PID为103707的进程对应的终端为pts/1,而且该进程是由bash启动的,这正是我们所要找的终端进程。
然后通过kill命令强制终止该进程。
再次执行who命令,发现可疑用户已经被踢出,而且该用户启动的所有进程也将自动关闭(通过nohup命令转为系统后台进程的除外)。