Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

Linux不是通过账号来识别身份的,而是通过ID号,也就是一个数字来识别身份的,叫UID(user's ID)。在正常情况下,每一个用户都有一个独一无二的UID。

Linux用户分为三类:

  • 系统管理员用户:拥有整个系统所有的权限,而且Linux的系统管理员用户只有一个,就是根用户root,根用户的UID是固定的,永远是0。
  • 虚拟用户:这一类用户不具备登录系统的能力,但却是系统运行不可或缺的,比如bin、daemon、ftp、mail、nobody等,这些用户一般是给系统中的程序使用。比如浏览器,就是nobody用户;当匿名访问ftp时,会用到用户ftp。在CentOS系统中的1~499的UID都是预留给虚拟用户使用的。
  • 一般用户:最常用的用户类。这类用户可以登录系统,对系统只有有限的权限。在CentOS系统中,普通用户的UID从500开始。

用户组的概念:

用户组就是具有相同特征的用户的一个集合体。Linux也是通过一个ID号,也就是一个数字来识别用户组的。这个数字叫GID(group's ID)。在正常情况下,系统中的每个用户组都有一个独一无二的GID。


用户组和用户之间是多对多的关系。一个用户可以从属于多个用户组,一个用户组也可以包含多个用户。但是需要特别指出的是,Linux还有一个“主用户组”,或者叫“有效用户组”的概念。

注意:一个用户虽然可以从属于多个用户组,但是它的主用户组只能有一个。

主用户组和其他用户组最大的区别就在于:在用户创建文件时,会影响文件的“从属用户组”这个属性。


查看用户:

命令id:侧重查看用户UID,用户所归属的用户组、GID信息

用法:

十分简单,只要直接在id命令后跟上用户名。“id 用户名”

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

如果id后面没有跟用户名,那就是显示当前登录用户的信息。(后面的“环境信息“是SE Linux的内容)

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组


命令finger:侧重查看用户家目录、SHELL类型、用户备注

用法:

十分简单,只要直接在finger命令后跟上用户名。“finger 用户名”

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

Login后面显示的是用户名;Name后面表示的是该用户的说明和备注;Directory后面表示的是用户的家目录;Shell表示的是用户所使用的默认shell类型;Last login显示的是用户在何时何地登录本主机;下一行显示的是用户新邮件的数目,no mail表示的是么有新邮件;最后一行显示的是用户家目录中隐藏文件.pre的内容,该文件中一般放的是该用户的工作计划,no plan表示的是没有计划内容。

如果finger后面不跟用户名,显示的是当前登录主机用户的一些信息,分别显示的是登录用户名、用户备注、登录终端类型、空闲时间、登陆时间、登陆主机名或者IP地址。

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组


切换用户身份:

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

命令su(switch user):切换用户

用法:

su 用户名

一般来说,还会带上-l选项,表示在切换的时候,不仅切换了用户身份,还切换了shell的运行环境。特别注意:如果没有特殊情况,强烈建议要跟上-l选项。-l选项一般可以简化为'-'。横岗左右都有一个空格。


创建用户

建立一个可用的用户,最少需要用户名和密码这两样数据。

命令useradd:创建用户。(只有根用户才能创建新用户)

用法:useradd 新用户明

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

接下来,用passwd来设置密码,注意:只有在根用户下才能用passwd命令设置其他用户的密码。普通用户只能设置自己的密码。

用法:将要设置密码的用户名跟在命令passwd后就可以了。

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

命令会让你输入两次密码进行确认。(注意:在输入密码时,Linux不会以任何方式回显您的输入)在两次之后,密码就设置成功了。如果您输入的密码过于简单,在第一次输入时,passwd会给出警告。当然,你可以忽略警告,第二次照常输入,密码也会被正常输入。

建立的新用户,除了密码和用户名,用户的其他属性都由系统指定好。

在默认情况下,新建用户的家目录将位于/home目录下,目录名和用户名同名,在CentOS下第一个新建的用户的默认UID是500,接下里的新用户的默认UID是上一个新建用户UID加一。

系统将为用户创建一个独立的用户组,作为其主用户组,这个用户组一般来说跟用户同名。除主用户组外,用户一般不从属于其他用户组,这个新建组的GID默认是上一个新建组的GID加一。

1. 用adduser命令的选项 -u为用户指定UID时,这个UID必须是没有被使用过的。

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

2. 用-g或者-G来指定用户组时,必须得确保这些用户组确实存在。

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

例子:

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组


修改用户:

命令usermod(user modify):可以修改用户的名称、UID、主用户组、从属组、备注、家目录、默认Shell等属性,其所带的选项,几乎和useradd一模一样。


注意:在用户登录系统时,是无法修改用户名和UID的。


删除用户:

命令userdel:将要删除的用户跟在命令后面就可以删除用户。

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

需要注意的是:用户虽然删除了,但是用户家目录依然存在,您可以在确认没有重要文件时,手动删除目录。

也可以在删除用户的同时在usedel命令后跟上-r选项,将用户的家目录一并删除。(虽然这样做很方便,但是强烈建议系统管理员不要使用-r参数,很容易误删系统文件)

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

最后注意的是:正在登陆的用户无法删除。


创建用户组:

(比创建用户更简单)至少只要指定创建用户组的名称就可以了。(只有根用户才能创建用户组)

命令groupadd: 创建用户组

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

命令groupmod:修改用户组

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

注意:不要随意更改用户组的GID,很容易造成系统混乱。

命令groupdel:删除用户组

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组

注意:只有有一个用户把该用户组作为主用户组的话,这个用户组就木有办法删除

Linux入门——第六课——用户/用户组、查看切换用户、创建修改删除用户/用户组