复习之Linux系统中的用户管理

1.用户及用户组的意义

在Linux中,用户(User)和用户组(Group)是管理系统权限和资源访问的重要概念。

(1)用户

 用户是指系统中的一个身份标识,每个用户都有自己的用户名和密码。每个用户可以拥有自己的文件、进程和权限,通过用户名和密码进行身份验证后可以登录系统并执行各种操作。通过建立不同权限的用户,一来可以合理的控制和运用系统的资源,二来可以帮助用户构建自己的私人空间,更好的组织和管理自己的文件。

用户是系统中最底层的一种安全机制,3A机制组成系统中最底层的安全架构。3A机制由 “身份 account ,授权  author,认证 auth”组成。

(2)用户组

用户组是指一组用户的集合,对用户进行归类和统一授权。每个用户可以属于多个用户组,而每个用户组可以拥有多个用户。用户组通常用于授权管理和文件访问控制,比如一个用户组可以有权限访问某个目录或文件,而其他用户组则没有。

Linux使用了一种称为“访问控制列表”(Access Control List,简称ACL)的权限控制机制。每个文件和目录都有一个ACL,包含了对该文件或目录的访问权限设置,包括用户和用户组等信息。当一个用户尝试访问某个文件或目录时,系统会根据该用户所属的用户组和ACL中的权限信息来判断是否允许访问。

2.用户查看的方法

# whoami : 查看当前用户

#id :查看当前用户id信息

#id 用户:查看指定用户的id信息

#id  -u  用户 : 查看用户的用户id

#id  -g  用户 : 查看用户的主组id

#id  -G  用户 : 查看用户的所有组的id

#id  -n  : 显示名称,不可以单独使用。必须联合以上一起使用,例如:

#id -n -g 用户:显示用户所有组的名称

 3.切换用户

(1)图形切换

(2)gnome命令切换

# gnome-session-quit     --force :输入命令后直接退出系统,重新登陆。

(3)su 命令切换

# su   username  : 切换用户 ,不切换用户环境

# su  -   username:切换用户,切换了用户环境

两者区别:“  -   ” 代表切换用户环境

超级用户----->  普通用户 :不需要密码

普通用户-----> 超级用户:需要密码

普通用户------>普通用户:需要密码

 注意:在做用户切换时当使用完毕用户身份及时退出,利用exit命令
#不要在一个shell中反复执行su命令

#在一个shell中反复执行su命令会导致环境错乱

4.用户涉及到的系统配置文件

/etc/passwd    ##用户身份信息文件

#用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell

 /etc/group      ##组身份信息文件  #组名称:组密码:组id:组的附加成员

/etc/skel/.*            ##用户环境配置文件模板

 /etc/shadow        ##用户认证信息文件

/home/username        ##用户家目录

/var/spool/mail/username        ##用户邮箱文件

5.监控及用户和组建立的基本方法

(1)监控

# watch  命令 : 隔两秒执行一次命令

# watch  -n 1  命令 : 隔一秒执行一次命令

<ctrl> + <C > 即可退出监控界面

由于本次实验需要监控用户和组的建立及删除,因此我们设立以下监控界面。

# watch    -n   1     "tail -n 3 /etc/passwd /etc/group  ;    ls -l /home" :查看etc/passwd etc/group 后三行的内容,并且展示家目录的属性。

“  ;”   : 表示命令的间隔

 (2)用户和组建立的基本方法

# useradd  用户 :建立用户

# userdel   用户 : 删除用户,只删除用户的信息,不删除配置文件,比如家目录。

#userdel    -r  用户 :  删除用户及其系统配置文件

 # groupadd 组 :建立组

 # groupdel  组:组删除

 6.指定信息建立用户及组

(1)建立组---指定id

# groupadd   -g  id  组  : 建立指定id 的组

 (2)指定信息建立用户

#useradd   -u   id  用户  :建立指定id的用户 (默认主组id与用户id一致)

ps:本次实验建立用户后及时删除

 注意:用户id不能随意取,用户建立默认规则储存在:/etc/login.defs

# 0  :  超级用户

# 1 - 200 :系统预留id

# 201 - 999 :系统用户

# 1000 - 60000 :用户级用户

# useradd   -g  id  用户名 : 建立指定主组id的用户        ps:前提是这个组要存在!

注意:指定主组id 不影响用户id 

 # useradd   -G   id   用户 : 建立指定附加组id的用户 (该附加组必须要存在)

# useradd  -c  说明  用户名  : 建立指定用户说明的用户

 # useradd  -d  家目录  用户名 :建立指定家目录的用户

 # useradd  - M  用户名 :建立用户时不建立家目录

 # useradd  -s  shell   用户名 :建立用户时指定shell

ps: 默认shell有  /bin/sh  /bin/bash   sbin/nologin  

但sbin/nologin  是系统预留的,不对外开放!

7.用户信息的更改

(1)修改用户名称

# usermod   -l   新名称  旧名称  : 修改用户名称

 (2)修改用户id

# usermod   -u    新id   用户名  :修改用户id

 (3)修改用户主组id

# usermod  -g  新主组id/名称   用户名 : 修改用户的主组id

ps:新主组必须存在!

 (4)更改用户附加组的身份

# usermod   -G   附加组id/名称  用户 : 修改用户的附加组身份

ps:附加组必须存在!

注意:新附加组身份会覆盖原附加组,因此可以利用该特性清空用户的附加组。

# usermod  -G   ""     用户名:清空用户的附加组

 (5)添加用户附加组身份

# usermod  -aG  附加组id/名称  用户 :添加附加组身份

注意:新附加组身份不会覆盖原附加组

 (6)更改用户说明

# usermod  -c  用户说明   用户名  :更改用户说明

 (7)更改家目录指向

# usermod   -d  新家目录  用户 :更改家目录指向

ps:只是更改了家目录指向,该指向不一定存在。真正的家目录名称并为改变

 (8) 更改家目录指向同时更改家目录名称

# usermod  -md  新家目录  用户名:修改家目录指向并更改家目录名称

(9)修改用户的默认shell

# usermod   -s  新shell  用户名:修改用户的默认shell

8.用户认证信息管理

(1)/etc/shadow : 文件内容说明

#用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期:账号非活跃期:账号到期时间:用户自定义(未使用)

 (2)查看用户密码状态

# passwd  -S  用户名:查看用户密码状态

 (3)root修改密码

# passwd  用户 :修改用户密码

ps:超级用户可以直接修改任何用户的密码,不用输入原密码。

# echo 123  | passwd  --stdin  westos  : 修改westos用户的密码为123 ,非交互式修改密码,只有root可以执行

 

 (4)普通用户修改密码

# passswd   :  只用输入passwd即可修改自己的密码

注意:修改密码前要输入原密码且密码要8位以上,要求严格

 (5)用户冻结和解冻

ps:监控界面:

#watch -n 1 "tail -n 1 /etc/shadow ; echo @@@@@; passwd -S lee"

#passwd  -l  用户 : 用户密码被冻结,则该用户无法登陆。

冻结的原理,密码前加了两个感叹号!!

ps:root切换该用户成功,普通用户无法切换该用户。

# passwd  -u  用户 :用户密码解锁

 # usermod   -L  用户:也可对账号进行冻结,在密码前加了一个感叹号!

 # usermod     -U  用户 :对账号进行解冻

 (6)修改用户密码最后一次被修改的时间

# passwd  -e  用户 : 修改默认时间为0,必须修改该账号的密码。

适用场景:拿到新银行卡时必须修改密码。

修改前:

 修改后:

 再次登陆该用户时,强制要求修改密码

再次登陆系统后,时间又恢复了

 # chage   -d  0  用户 : 修改用户默认时间为0

 修改密码后,恢复!

 (7)修改密码最短有效期:该期限内不能改密码

# passwd  -n   1  用户 :该用户一天不能改密码

# chage  -m  1  用户:该用户一天不能改密码

 (8)修改密码最长有效期限:过了该日期必须修改密码

# passwd  -x  30  用户:修改用户的最长期限为30天

# chage  -M  99999  用户 :修改用户的最长期限为9999天

 (9)修改密码过期前警告时间

# passwd   -w   2  用户:修改警告时间为2天,即到期前两天提示密码即将过期。

# chage  - W  7 用户:修改警告时间为7天。

 (10)修改认证非活跃天数:过期后还能用多久

# passwd    -i   1  lee  :过期后还能登陆该账号一天,并且会强制改密码(因为过期了)。

# chage  -I   -1  lee  :不设置非活跃天数。

 (11)修改账号到期时间

# chage        -E      “2024-01-23" 修改账号过期时间为2024-01-23

 9.用户权力下放

普通用户默认无法建立新用户

 #在系统中普通用户时无法执行系统管理命令的
#如果需要普通用户执行系统管理动作那么需要root用户来进行授权

授权方法:
visudo                             ##此命令作用是编辑/etc/sudoers并提供语法检测

#  visudo   :  只输visudo 回车就可以

 ps:一般写在100行

 因此首先要获取主机名和执行命令的绝对路径

#  hostname  : 获取主机名

# which  useradd : 获取命令的绝对路径

 输入visudo开始授权,在100行写

lee   主机名=(root)  命令的绝对路径 :lee用户在该主机上以root身份执行useradd命令

 切换至lee用户测试

# sudo   : 授权方法

# sudo  useradd test

第一次需要密码,后续不需要。

发现普通用户也可成功建立新用户, 普通用户删除用户怎么办?

继续在visudo里面添加执行命令即可,命令之间用逗号空格隔开

lee用户利用权力下放删除test,test1用户成功!

如果想第一次也不输入密码。

即免密的话,在/etc/sudoers文件添加NOPASSWD:就可以。

 则第一次也不需要密码,实现了免密操作!

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值