一·故事剧情
今日份整体学习了用户和组管理的相关命令,重点还是对命令的记忆,和各种环境下需要使用哪个以及如何使用命令,明天作为转生后的第一次测试,好好复习命令,接下来开始讲解。
二·用户与组概述
与windows类似,Linux也有用户和用户组的概念。在Linux系统中,每次登录系统都必须以一个用户的身份登录,并且登录后的权限也会根据用户身份来确定。 每一个进程在执行时,也会有其用户,该用户也和进程所能控制的资源有关。Linux系统下的每一个目录、文件,都会有其属于的用户和用户组,我们称其为属主和属组。由此可见,用户和用户组与Linux系统的运行息息相关。在实际操作使用系统时,我们往往较多关注用户与用户组。
在Linux系统中,每个用户都有自己的用户ID,称为UID,每个用户组也有自己的用户组ID,称为GID,UID和GID在Linux系统中是不可重复的。Linux系统就是通过UID和GID来对用户和组进行管理的,而对于管理员来说,往往会设置用户名和组名,这样使得用户和用户组的使用管理更人性化。
1·用户类型
a.root用户
root用户时UID和GID都等于0的用户,是Linux系统中的“上帝”,拥有最大的权限。如果深入了解Linux系统,会发现root用户真的拥有很多特权,比如:无视Linux对权限的设置而强行读、写、执行文件,切换其他用户登录不需要密码,可以强行切换到已经存在的用户,只有root可以为普通用户修改密码等等。
b.系统用户 (程序用户)
系统用户通常用于运行服务,但是此用户无家目录,也不能用于登录系统。例如,在yum安装apache、nginx等服务后,就会自动创建apache和nginx的用户和同名用户组。在CentOS6系统中,系统用户的UID范围是1-499,在CentOS7系统中,系统用户的ID是1-999。
c.普通用户
普通用户只能由root用户创建,该用户拥有家目录,并且可以登录,该用户的权限由root分配。普通用户拥有指定的shell环境。
2·用户和用户组关系
在Linux系统中,每个用户必定属于一个主组(基本组),默认情况下属于与其同名的用户组,最多可以有31个附属组,从用户权限的角度看,主组和附属组其实差别不大,用户也会拥有其附属组的组相关权限。
3·用户和用户组配置文件
Linux系统下用户和用户组相关的配置文件主要有以下几个:
a.存储用户信息
#用户名:密码占位符:用户ID:组ID:用户描述信息:用户家目录:登录shell
b·用户的密码信息
#用户名:密码:用户创建时间:密码最短使用期限:密码最长使用期限:密码过期提醒时间:密码过期后的宽容时间:密码过期时间:没用信息
注意: !! 表示该用户没有设置密码。
! 表示用户密码被锁定,该用户无法登录操作系统。
c·用户组的信息
#组名:占位符:组ID:非基本组的组成员
d·用户组的密码
e·/etc/login.defs
该文件可以设置密码过期时间,密码最大长度限制等内容。影响的是新创建的用户密码信息
f·用户创建时默认文件的模版目录
三·用户管理
1·useradd命令
创建一个新用户或更新默认新用户信息
语法:
useradd 选项 用户名
选项:
选项 | 作用 |
---|---|
-u | 指定用户的UID。 |
-d | 指定用户的家目录,而不采用默认创建在/home中的目录。不能是已存在的目录。 |
-s | 指定用户的登录shell |
-M | 创建用户时不创建家目录 |
-g | 创建用户时指定基本组,不会创建用户的同名组 |
-G | 创建用户时指定附加组,依然会创建同名组 |
-e | 创建用户时,指定用户的失效时间。 |
a·指定用户的UID
b·指定用户家目录
c·指定用户的登录shell
d·创建用户时不创建家目录
e·创建程序用户
f·创建用户时指定基本组
g·创建用户时指定附加组
h·创建用户时,指定用户的失效时间。
2·userdel
删除用户账户和相关文件
语法:
userdel 选项 用户名
选项:
选项 | 作用 |
---|---|
-r, --remove | 用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。 |
删除用户的同时删除在创建时产生的文件
3·passwd命令
更改用户的密码。root用户使用时,可以更改所有用户的密码。普通用户使用时,只能更改本身的密码。
语法:
passwd 选项 用户名
选项:
选项 | 作用 |
---|---|
-l(小写L), --lock | 锁定用户密码。 |
-S | 查看密码的锁定状态 |
-u,--unlock | 解除用户密码的锁定状态 |
-d, --delete | 将用户密码清空 |
-e,--expire | 直接让密码失效,下次登录时必须更改。 |
--stdin | 非交互式修改密码。 |
a·设置用户密码
#用户输入passwd命令后直接回车,表示更改本身的密码。
b·锁定用户密码
c·查看密码的锁定状态
d·解除密码的锁定状态
e·清空用户密码
f·强制密码失效
g·非交互式修改用户密码
4、usermod命令
修改一个用户账户的属性。
语法:
usermod 选项 用户名
选项:
选项 | 作用 |
---|---|
-u | 修改用户的UID。 |
-d | 修改用户的家目录,而不采用默认创建在/home中的目录。 |
-s | 修改用户的登录shell |
-g | 修改用户基本组,不会创建用户的同名组 |
-G | 修改用户附加组,依然会创建同名组 |
-e | 修改用户的失效时间。 |
-a, --append | 追加用户到一个附加组 |
-L, --lock | 锁定用户 |
-U, --unlock | 解锁用户 |
a·锁定用户
b·解锁账户
5、chpasswd命令
批量更新密码。
语法:
chpasswd 选项
6·chage命令
更改用户密码过期信息,影响现有用户。
语法:
chage 选项 用户名
选项:
选项 | 作用 |
---|---|
-l, --list | 显示账户年龄信息 |
-m, --mindays | 修改密码的最短使用期限 |
-M, --maxdays | 修改密码的最长使用期限 |
-W, --warndays | 修改密码过期的提示时间 |
a·查看用户的密码信息
b·改密码最短使用期限修
四·组管理
1·groupadd命令
创建新组
语法:
groupadd 选项 组名
选项:
选项 | 作用 |
---|---|
-g, --gid GID | 指定 GID |
案例:
创建新组
将用户添加为组成员
2·groupdel命令
删除组
语法:
groupdel 选项 组名
选项:
选项 | 作用 |
---|---|
-f | 强制删除,但不建议 |
案例:
删除组
3·groupmod命令
语法:
groupmod 选项 组名
选项:
选项 | 作用 |
---|---|
-g, --gid GID | 修改GID |
案例:
修改组的GID
4·gpasswd命令
向组内添加成员
语法:
gpasswd 选项 组名
选项:
选项 | 作用 |
---|---|
-a, --add USER | 向组 GROUP 中添加用户 USER,单个添加 |
-M, --members USER,... | 设置组 GROUP 的成员列表,批量添加,覆盖原有成员 |
单个添加
批量添加
五·用户切换与sudo提权
1、su命令
切换用户,从root用户切换到普通用户不需要密码。普通用户之间切换需要密码。
语法:
su - 用户名
选项:
选项 | 作用 |
---|---|
-, -l, --login | 切换目录用户的登录shell |
su 与 su - 的对比
#su 不会切换目标用户的登录shell
#su -会切换到目标用户的登录shell
2、sudo命令
sudo用来进行普通用户提升权限
语法:
sudo 选项 参数
选项:
选项 | 作用 |
---|---|
-i | 切换到指定用户的登录shell。采用本身的密码提供验证。 |
注意:sudo -i root,切换到root,必须存在于sudoers文件中的普通用户才有权限。
切换到root用户
提升普通用户使用命令的权限
六·用户登录信息查看
1·id命令
查看用户的基本属性,用户UID,基本组及附加组
语法:
id [OPTION]... [USER]
选项:
| 选项 | 作用 | | ---- | ---- |
2·w命令
查看当前系统登录详情
语法:
w 选项
选项:
选项 | 作用 |
---|---|
-h | 不显示表头 |
3·who命令
显示当前系统登录的摘要信息
选项:
选项 | 作用 |
---|---|
-b, --boot | 上次系统启动时间 |
-u, --users | 列出已登录的用户 |
查看系统的启动时间
查看系统登录用户
4·whoami命令
显示当前登录用户的名称
5·finger命令
查看用户登录信息,默认系统不存在该命令,需要安装(yum install -y finger)
6·last命令
last命令可以查看登录用户列表,last命令实际上从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表。此命令普通用户也可以执行。
7·lastb命令
lastb命令可以从日志文件/var/log/btmp中读取信息,并显示用户登录失败的记录用于发现系统登录异常。此命令要求root用户才可以执行,lastb可用参数与last命令参数相同。
8·lastlog命令
统计当前系统中存在用户的登录情况
七·总结
今日整体学习了用户与组管理的相关命令,内容相对简单但是量相对较多,比较繁杂,但是各类内容之间有相似部分,记忆起来可以举一反三,好好准备,为每日的测试加油!