RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理

1. 用户及用户组存在的意义 

1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有两个资源配合
1.身份 account
2.授权 author
3.认证 auth
 
3A机制,3A机制组成系统中最底层的安全架构
 
2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
 
 

2.用户及用户组在系统中的存在方式 

电脑对数字敏感 id
人类对字符串敏感 名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是    /etc/passwd    文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行字符
 
 

3.用户切换 

1)用户查看
*whomai ##查看当前用户
*id  ##查看用户id信息
-u   ##查看用户的用户id
-g   ##查看用户主组id
-G  ##查看用户所有的组的id
-n   ##显示名称
2)用户切换
su - username
 
#切换用户环境
username
##如果root ----> commonuser  (箭头为“对······操作”的意思)
不需要后者密码
 
##commonuser ----> root
需要密码
 
##commonuser ----> commonuser
需要密码#
 
#注意:在做用户切换时当使用完毕用户身份及时退出
#不要在一个shell中反复执行su命令
#在一个shell中反复执行su命令会导致环境错乱
 
 

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

/etc/passwd ##用户身份信息文件
#用户名称:用户密码:用户id:用户主组id:用户说明:用户家 目录:用户默认shell
 
/etc/group ##组身份信息文件
#组名称:组密码:组id:组的附加成员
 
/etc/skel/.*
##用户环境配置文件模板
 
/etc/shadow
##用户认证信息文件
 
/home/username
##用户家目录

5.用户和用户组建立及删除

监控用户建立的命令
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l / home"
 
useradd username ##用户建立
 
-u id username ##uid          id:2**16=0-65535    (id全是数字)
                                              ##0 表示超级用户
                                              ##1-200 系统预留id
                                              ##201-999 系统用户
                                              ##1000-60000 用户级用户
                                              ##/etc/login.defs 记录用户建立的默认规则
-g id username ##主组id
-G id username ##附加组id
-d dir username ##指定用户家目录
-c word username ##指定用户说明
-s shell username ##指定用shell
 
userdel -r username ##用户删除
              -r 删除用户的系统配置文件
 
groupadd groupname ##组建立
              -g id groupname ##指定组名称
 
groupdel groupname ##组删除
 

6.用户和用户组的信息管理

usermod
-l #更改用户名称
-u #更改用户id(uid)
-g #更改主组id(gid)
-G #更改用户附加组身份
-aG #添加用户附加组身份
-c #更改用户说明
-d #更改家目录指向
-md #更改家目录指向同时更改家目录名称
-s #更改默认shell
 
groupmod -g ##更改用户组id
 

7.用户认证信息管理 

#1.用户名称
passwd -S lee ##查看密码状态
 
#2.用户加密字符
 
#更改密码
passwd lee ##只有root可以执行 “echo 123 | passwd --stdin lee”
 
passwd
##普通用户改密码
Changing password for user lee.
Current password: #输入原始密码
New password: ##输入新密码(8位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.
 
#冻结认证
passwd -l lee ##冻结账号认证      (冻结 lock)
passwd -u lee ##解锁账号认证     (解冻 unlock)
 
#密码删除
passwd -d lee
 
#密码使用天数
*1970-1-1算其到今天的时间
passwd -e lee
##修改默认使用时间为0h
chage -d 0 lee
##账号必须改密码才能登陆系统
 
#密码最短有效期
passwd -n 1 lee
##lee1天内不能改密码
chage -m 1 lee
 
#密码最长有效期
passwd -x 40 lee ##40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
 
#密码过期警告
passwd -w 2 lee
##账号过期前警告时间
chage -W 1 lee
#认证非活跃天数
 
passwd -i 2 lee
##账号认证最大时间超过后还能用多久
 

8.用户权力下放

#在系统中普通用户时,无法执行系统管理命令
#如果需要普通用户执行管理动作那么需要
#root用户来进行授权
 
普通用户授权方式 "sudo"    ##可以使普通用户使用指定的用户身份运行命令
 
普通用户无法执行超级用户命令
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
可用“visudo”授权(打开的是 /etc/sudoers 文件,若不使用命令打开这个文件,编辑是存在语法错误的)
打开后:set nu 标注文件行号如下
 
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
 
使用hostname和which命令分别获取主机名域名信息、useradd程序所在目录信息
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
 
在root用户下的sudoers文件添加如下用户授权dou    localhost.localdomain =(root)   /usr/sbin/useradd
即dou(用户)在主机localhost.localdomain下时,能以超级用户身份执行useradd(命令)
 
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
若要授权多个命令,命令的目录要以“ , ”隔开
#若要该命令免密执行,命令的目录 前 应加上       NOPASSWD:
 
练习题
 
在系统中完成以下用户操作
 
1.建立用户组shengchan,caiwu,jishu并满足以下i要求
*shengchan组id为8000
*caiwu组id为8001
*jishu组id为8002
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
 
2.建立westos,linux,lee,westosadmin等用户完成以下要求
 
*westos用户的附加组为shengchan和jishu
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
useradd执行过后会报错用户westos已经存在,需要用usermod -aG指定第二个附加组
 
*lee的主组为caiwu附加组为jishu,lee的uid和gid必须一致
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
*linux为系统账号不能直接被操作者使用
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
建立系统用户时,不建议建立在/home目录下,应加入-M指令
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
*westosadmin不属于以上三个部门,但是可以在系统中*地管理用户
RHEL 企业级红帽运维工程师 (四)Linux系统中的用户管理
 
3.
*以上用户密码均为westos,并要求用户首次登录时强制修改密码
*设定以上用户密码必须在30天内修改,并在过期前2天发出警告
 
tail -n 5 /etc/passwd /etc
tail -n 5 /etc/group
passwd -S linux
 
 
 
chage -I 1 lee
#账号认证到期时间
chage -E "2020-05-11" ##2020-5-11这天账号会被冻结

#未启用功能