基础概念

Linux 是一个多用户、多任务的操作系统,具有很好的稳定性与安全性。可以在系统上建立多个用户,而多个用户可以在同一时间内登录至同一系统执行不同的任务,并不会相互影响。

用户和用户组

用户

用户是能够获取系统资源的权限的集合,每个用户都会被分配一个特定的 UID。不同用户具有不同的权限,每个用户在权限允许的范围内完成不同的任务,通过权限划分与管理,实现了多用户多任务的运行机制。

如果需要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。

每个用户都具有唯一的用户名和密码。

用户的分类

超级用户:超级用户拥有系统的完全控制权,可以进行修改、删除文件等操作,也可以运行各种命令,在使用 root 用户时要十分谨慎。

普通用户:也叫一般用户,可以自己目录下和授权的文件进行修改、删除等操作,只能在权限范围内进行操作。

虚拟用户:也叫系统用户,一般用户系统服务管理。

用户组

用户组是具有相同特征用户的逻辑集合,每一个用户组都会被分配一个特定的 GID。

如果需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,那么就可以建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限,这就是用户组。

将用户分组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

用户组的类别

基本用户组:创建用户时会自动创建一个与其同名的用户组,这个用户组就是基本用户组,而且这个基本用户组只有该用户一个人,也叫私有组。

扩展用户组:容纳多个用户的用户组称为扩展用户组,扩展用户组可以容纳多个用户,向基本用户组中增加其他用户,这个组就称之为扩展用户组了。

系统用户组:系统组,容纳系统用户的组。

用户和用户组的关系

一对一:一个用户可以存在一个用户组中,作为组中的唯一成员。

一对多:一个用户可以存在多个用户组中,该用户具有多个组的共同权限。

多对一:多个用户可以存在一个用户组中,这些用户具有和组相同的权限。

多对多:多个用户可以存在多个用户组中,其实就是以上三种关系的扩展。

UID 和 GID

UID

用户 ID(User ID),一个用户 UID 标示一个特定用户,UID 是用户的唯一标示符,通过 UID 可以区分不同用户的类别,用户在登录系统时通过 UID 来区分用户,而不是通过用户名来区分。

UID 为 0 的用户称为超级用户,一般也叫 root 用户。

普通用户的 UID 为 1000 ~ 60000 之间。

虚拟用户的 UID 为 1 ~ 999 之间。

需要注意的是只要 UID 为 0,就代表是超级用户,无论用户名是否是 root,并且 UID 具有唯一性,创建用户是如果没有指定 UID 则默认从 1000 开始往后递增。

GID

用户组 ID(Group ID,简称为 GID)和用户 UID 类似,作为唯一标识符来标示系统中的一个用户组。

在创建用户时,默认情况下会同时建立一个与用户同名且 UID 和 GID 相同的组。

用户和用户组管理

用户和用户组管理就是对用户和用户组进行增删改查——创建、修改、删除和更改用户密码等操作。

用户管理

查看用户——id

id 命令用于显示用户的详细信息语法为:id 用户名

创建用户——useradd

useradd 命令用户创建用户账号。

语法:

TERMINALbash
useradd [选项] [用户名]

选项:

  • -d:指定用户的家目录(默认为/home/username)。
  • -e:账户的到期时间,格式为 YYYY-MM-DD。
  • -u:指定该用户的默认 UID。
  • -g:指定一个初始的用户基本组(必须已存在)。
  • -G:指定一个或多个扩展用户组。
  • -N:不创建与用户同名的基本用户组。
  • -s:指定该用户的默认 Shell 解释器。

用户组管理