用户概念

Linux 的安全性很高,它完善的用户和权限管理机制功不可没。

Linux 支持多用户

linux一般用于提供各种网络服务,往往服务对象就是系统中的“用户”。用户对linux很重要

1. 用户的类型

在 Linux 系统中,有三种用户。

超级用户:

用户名为 root,用户 UID 为 0。

有着至高无上的权限,可执行所有任务,可访问所有文件,可管理所有用户。

在服务器配置工作完毕后,为了安全,不应该直接使用超级用户。

普通用户:

用户 ID 默认从 1000 开始。供普通用户使用。

系统服务用户:

用户 ID 默认为 1-999。一般为自动安装好,不建议修改。

仅供系统服务使用

2. 用户配置文件

/etc/passwd

cat /etc/passwd

文件的格式如下:

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

该文件以 : 作为字段分隔符,保存了本机所有用户的基本信息。以下详细说明其含义。

  • 第 1 栏:账号名称

  • 第 2 栏:原密码位,现已保存至 /etc/shadow 中,此位使用 x 占位

  • 第 3 栏:UID,用户ID

  • 第 4 栏:GID(组ID,后续讲组的时候再说)

  • 第 5 栏:账户说明信息(备注)

  • 第 6 栏:账户家目录路径

  • 第 7 栏:账户使用的 Shell

现在密码的存放位置为 /etc/shadow

关于shell

shell 翻译为外壳,在计算机中是用户与机器沟通的交互界面

一般使用的shell 是bash /bin/bash

特殊的shell:/sbin/nologion,这个shell,我们称为空shell

当用户设置为这个shell ,则用户将无法登录系统

账户管理的相关命令

创建用户

useradd 参数 用户

注意!在使用 useradd 添加用户之后,用户默认是被封锁的,因为还没有设定账户密码

#重要
-u,  用户指定一个 UID
-g,  用户指定的初始/主要群组,这里可以使用 GID 或 群组名
-G,  指定用户需要加入的补充/次要群组,可以使用 GID 或 群组名,多个群组之间用逗号隔开
-s,  设置该账户将启动的 shell 程序

不能用纯数字做用户名,

系统在判断用户身份的时候是通过UID,进行判断的

修改用户

usermod 用户

需注意,此处用户必须已经创建!

参数和使用方式和useradd 基本相同

删除用户

userdel 用户

需注意,此处用户必须已经创建!

这样删除并不彻底,用户家目录以及目录中的文件将会保留

参数列表:

-r 删除用户家目录以及目录中所有文件

学习阶段不建议使用

查看用户信息

id <账户名>

[user2@localhost root]$ id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)

设置用户密码

passwd <账户名>

注意在 root 的权限下,密码的修改不需要输入旧密码,而且会无视对密码强度的限制

在非 root 的权限下,密码修改需要输入旧密码,也必须通过密码强度的限制

小练习

  1. 创建user1,user2,user3

  2. 其中user1的UID为2000,其他不做要求

  3. 其中user2的备注为u2

  4. 其中user3不被允许登录系统

  5. 所有用户的密码都为123

useradd -u 2000 user1
useradd -c u2 user2
useradd -s /sbin/nologin user3
passwd  user1
passwd  user2
passwd  user3
cat /etc/passwd

组是具有相同特征的用户的集合。

在实际环境中,我们通过将用户加入到组进行统一管理。

对于用户加入组,来说分成两种:

1. 自身组,一般情况下用户被创建的时候,会自动创建一个同名的组,这个组是用户的自身组

2. 附加组,用户除了属于自身组之外,还能加入到其他附加组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

组的配置文件在/etc/group

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:

  • 第 1 栏:组名称

  • 第 2 栏:组的密码,完全不使用

  • 第 3 栏:GID,组的编号

  • 第 4 栏:组的成员

创建用户组

增加一个新的用户组:

groupadd 选项 用户组

选项有:

  -g GID 指定新用户组的组标识号(GID)。

案例

groupadd -g 101 group2

向系统中增加了一个新组group2,同时指定新组的组标识号是101。

删除用户组

删除用户组:

groupdel 选项 用户组

练习 1:创建用户并加入组

  1. 创建一个新用户 dave,UID为1003,主目录为 /home/dave

  2. 创建一个新的用户组 support

  3. 将用户 dave 添加到 support 组中。

useradd -u 1003 dave
groupadd support 
usermod -G support dave

练习 2:修改用户信息

  1. 修改用户 dave 的备注信息为 "Support Team Member"。

  2. 更改 dave 的家目录为 /home/support/dave

usermod -c 'Support Team Member' dave
mkdir /home/support
mkdir /home/support/dave
usermod -d /home/support/dave dave

练习 3:用户组操作

  1. 创建一个新的用户组 sales

  2. 创建两个新用户 evefrank,并将他们同时加入到 sales 组。

  3. 查看 sales 组中的所有成员。

groupadd sales
useradd -G sales eve 
useradd -G sales frank
cat /etc/group


练习 4:用户加入多个组

  1. 创建一个新的用户组 hr

  2. 将用户 frank 添加到 hr 组,使得 frank 同时属于 saleshr 组。

groupadd hr
usermod -G sales,hr frank