服务器我做主 踢出Linux系统中不听话的用户(1)


Linux是一个多用户的操作系统,在同一个时刻内可以有多个用户同时登陆到Linux系统中,甚至同一个用户都可以多次同时进行登陆。但是有时候系统管理员也会发现一些不听话的用户。如这些用户可能在进行一些未经授权的访问或者占用了太多的资源。此时系统管理员需要把他们剔除出系统。这该怎么做呢?

如现在笔者有一台Linux的服务器,现在正有两个用户连接在操作系统上。(笔者现在是利用同一台电脑不同的帐户名进行登陆,故后者显示的IP地址是相同的。)种种迹象表明,现在Oracle用户正在进行一些非法的勾当。为了安全考虑,笔者要马上把这个用户踢出Linux服务器,中断其与Linux服务器之间的连接。笔者下面就一步步的跟对大家介绍,该如何实现这个目的。

第一步:利用who命令,找出用户登录的终端代号。

如果系统管理员要把某个用户踢出操作系统,首先需要了解这个用户是通过什么方式等到到这个操作系统的,即要掌握用户登录的终端代号。用户以不同的形式登陆到Linux操作系统,其终端代号是不同的。TTY1-TTY6分别代表本机上的1到6号的虚拟主控台。PTS表示用户是通过远程登陆的。如果数字为:0则表示用户从XWindow登录系统。如果系统管理员需要知道某个用户是通过什么方式登陆到Linux操作系统的,则可以通过who命令来查询。如上面的示意图中,第二个字段就是用户登录操作系统的方式i。这里PTS表示oracle这个用户是通过远程登录的。如可能是通过ssh协议登陆到Linux操作系统的。掌握这个信息是把用户踢出操作系统的关键。

另外如果系统当前登陆的用户比较多,执行who命令列出所有数据会让系统管理员眼花缭乱。如果系统管理员知道要踢出操作系统的用户名,则可以使用who 用户名的方式来显示某个特定用户的信息。如果系统管理员不知道用户的具体名字,而只是模糊的记得这个用户可能是o开头的,则还可以利用通配符来实现模糊查询。另外如果只需要查询用户的终端代号信息,还可以在who命令后面加入具体的参数。

有时候可能管理员还需要使用who的一个同胞兄弟w命令。这个命令提供的信息要比who命令详细一点。特别是其中有一个pcpu与what参数可以给管理员到底需不需要把这个用户踢出操作系统提供一些参考。What参数反映了用户正在运行的程序。如果用户正在执行某个程序,则这里会显示出这个程序的名字;如果正在执行一般的文字模式命令,则这里会显示用户环境名称。Pcpu反映了CPU执行程序耗费的时间。这个时间就是执行What字段内的程序所消耗的时间。所以这些信息能够帮助管理员判断,这个用户到底是否存做一些非法行为或者在执行一些耗费操作系统资源的程序。同时,还可以从个结果中分析一下如果强制把用户踢出操作系统的话可能会给其带来什么样的损失。如果系统管理员铁了心要把这个用户踢出去的话,则可以直接利用who命令查找用户的终端代号即可。反正是两个命令都可以查询到用户的终端代码。

第二步:利用PS命令,找出程序标示符PID最小的值。

找到某个用户的终端代号之后,管理员需要使用ps命令找出该终端正在执行的程序中,程序标识符PID编号最小的值。因为PID编号最小的值对应的应用程序,就是这个用户登录系统时所执行的第一个程序。通常情况下这个就是用户的工作环境shell。

为此要把用户踢出Linux操作系统之前,管理员还需要了解shell的主要功能。Shell的功能在于搭起用户与操作系统间的沟通桥梁,提供基本的操作界面。系统管理员可以通过shell下达各种指令,在系统中进行维护操作,产生彼此间互动的关系。简单的说shell就是一种人机交换的工具。Shell主要负责用户和操作系统两者之间的交互。即shell会把用户下达的命令解释给系统去执行,并将系统返回的信息再次进行解释,然后传递给用户让用户了解系统内核要反映的内容。Shell对Linux系统很重要,大部分功能都只有依靠shell才能够完成。如shell可以实现工作控制,可以在前台与后台进行切换操作,并且显示有哪些工作正在后台执行。总之一句话,如果没有shell的话,用户将无法跟系统内核与系统硬件进行对话。所以管理员之需要强制把这个shell关掉,就可以将这个用户踢出Linux操作系统。


相关内容