用户与任务 编辑 请登陆,再编辑

前言

Linux系统 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念.

用户与任务

用户的角色

用户在系统中是分角色的,在Linux系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性

  • root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限
  • 虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户
  • 普通真实用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的

单用户与多任务

单用户、多任务:同个系统用户可以多个人同时使用,完成不同工作。

比如我们以beinan用户登录Linux系统,进入系统后,我要打开gedit来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务.

当然beinan这个用户,其它的人还能以远程登录过来,也能做其它的工作。

多用户与多任务

多用户、多任务:有时可能是很多用户同时用同一个系统,但并不所有的用户都一定都要做同一件事,所以这就有多用户多任务之说;

比如Linux系统Sir.Org 服务器,上面有FTP 用户、系统管理员、web 用户、常规普通用户等,在同一时刻,可能有的弟兄正在访问论坛;有的可能在上传软件包管理子站,比如luma 或Yuking 兄在管理他们的主页系统和FTP ;在与此同时,可能还会有系统管理员在维护系统;浏览主页的用的是nobody 用户,大家都用同一个,而上传软件包用的是FTP用户;管理员的对系统的维护或查看,可能用的是普通帐号或超级权限root帐号;不同用户所具有的权限也不同,要完成不同的任务得需要不同的用户,也可以说不同的用户,可能完成的工作也不一样. 值得注意的是:多用户多任务并不是大家同时挤到一接在一台机器的的键盘和显示器前来操作机器,多用户可能通过远程登录来进行,比如对服务器的远程控制,只要有用户权限任何人都是可以上去操作或访问的.

安全性

多用户系统从事实来说对系统管理更为方便。

从安全角度来说,多用户管理的系统更为安全,比如beinan用户下的某个文件不想让其它用户看到,只是设置一下文件的权限,只有beinan一个用户可读可写可编辑就行了,这样一来只有beinan一个用户可以对其私有文件进行操作,Linux系统 在多用户下表现最佳,Linux系统能很好的保护每个用户的安全,但我们也得学会Linux系统 才是,再安全的系统,如果没有安全意识的管理员或管理技术,这样的系统也不是安全的。

从服务器角度来说,多用户的下的系统安全性也是最为重要的,我们常用的Windows 操作系统,它在系统权限管理的能力只能说是一般般,根本没有没有办法和Linux系统或Unix 类系统相比。

管理在线用户

查看用户的操作

系统管理员若想知道某一时刻用户的行为,可以使用w命令。

# W
2:31PM UP 11 DAY ,21:18 4 USERS, LODE AVERAGE : 0.12, 0.09 , 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ROOT TTY1 - 09:21AM 3:23 0.13S 0.08S -BASH
GEORGE TTY2 - 09:40AM 18:00S 0.12S 0.00S TELNET
HELLO TTY6 - 11:12AM 34.00S 0.06S 0.O6S BASH
MARRY PTS/1 192.0.3.1102:40PM 5.20S 0.09S 0.03S FTP

第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登陆哟内用户总数及系统平均负载信息。对于上述数据中的几个显示数据意义为:

  • 2: 31PM 表示执行W的时间是在下午2点31分。
  • 11DAYS,81:18 表示系统运行11天零21小时18分。
  • 4 USERS 表示当前系统登陆用户总数为4。
  • LOAD AVERAGE 与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。

从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资料。

  • USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
  • TTY:用户登陆所用的终端。
  • FROM:显示用户在何处登陆系统。
  • LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
  • IDLE:用户空闲时间,从用户上一次任务结束后,开会记时。
  • JCPU:以终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
  • PCPU:指WHAT域的任务执行后耗费的CPU时间。
  • WHAT:表示当前执行的任务。

查看登陆用户

系统管理员若想知道某一时刻登陆的用户,可以使用系统提供的who命令,该命令可以查看当前登陆到系统的用户及其他信息。

以下我们简单解读who命令的输出:

who
root tty1 - 09:21am
reorge tty2 - 09:40am
hello tty6 - 11:12am
marry pts/1 :0 02:40pm

可以看出上述信息与W命令非常相似。如果想让列表更详细一些,可以加上选项-HIT等,就可以得到该用户是否愿意接受其他用户信息(-T)还可以显示空闲时间(-I)及标题栏(-H)。

如果某各用户愿意接受信息,会在MESG栏中显示一个“+”,这是还可以使用命令MESG给用户发从信息。

查看登陆用户历史

系统管理员若想知道系统中用户登陆的历史行为,还可以察看用户曾经登陆到系统。使用last命令可以查询曾经登陆用户的信息。

以下我们简单解读last命令的输出:

 ROOT TTY1 09:21AM MON FRI 10 11:15 STILL LOGGED IN
GEORGE TYY2 09:40AM MON FRI 11 11:18 -DOWN
HELLO TTY6 11:12AM MON FRI 12 9:47 -DOWN
MARRY PTS/1 192.0.3.11 02:40PM FRI 17 12:56 -DOWN
 ……
WTMP BEGINS FRI DEC 5 12:53:55 2003

使用LAST 命令时,列出的文件内容会非常多,根本看不清楚。此时可以使用前面介绍的管理方式来观看,例如/LAST/ LESS,则可以查看前后内容。同查看用户情况一样,想查看那某个用户的登陆情况,也可以在LAST命令后加上用户名,则系统只会显示该用户登陆系统情况。

last george
george tty2 - 09:40am mon fri 11 11.18 -down
………….
Wtem begins fri dec 5 12:53;55 2003

执行last命令其实是显示/var/log/目录下的wtmp文件内容。Wtmp文件是以二进制格式进行存储的,如果直接使用文本编辑器查看,查看的会是一堆乱码。

踢出已登录用户

pkill强制注销指定的登陆的活动 使用pkill -kill -t [TTY]命令来完成这项操作,其中[TTY]表示终端名,即用户登录所用的终端。

我这里要结束的是pts/0,pts/1为我当前活动的登录帐号,因为WHAT表明我在进行w命令。 Pkill.png

运行后,可以再次使用w命令来验证是否成功。

用户自行登出

终端执行以下任意命令可以实现:

 gnome-session-quit --logout --force  ##gnome-session登出实现
 pkill -9 gnome-session   ##杀死gnome-session登出实现
 sudo restart lightdm  ##重启lightdm登陆管理器实现

相关链接

Linux系统单用户多任务多用户多任务

Linux系统下查看已经登录用户并踢出的方法