Linux系统中的用户管理
文章目录
一.用户及用户组存在的意义:
1.用户存在的意义:
对于一个系统而言,系统的资源是有限的,要合理的分配资源,在解决资源分配时必须要有多个资源相互配合。
项目 | 作用 |
---|---|
account | 身份 |
author | 授权 |
auth | 认证 |
上述表格是Linux系统中的3A认证,3A机制组成系统中最底层的安全架构
2.用户组存在的意义:
用户组是一个逻辑容器,对用户进行归类和统一授权
二.用户及用户组在系统中的存在方式:
[1]电脑对数字敏感<----->人类对于字符串敏感
电脑中用户存在id<----->人类中每个人都有自己的名称
所以:id就是名称
[2]必须要记录到文件当中用户才能存在:
用户就是 /etc/passwd文件中的一行字符
用户组的存在方式就是 /etc/group文件中的第一行
[3]用户id范围:0-65535(2^16 -1)
id为0:linux超级用户
id为1-999:linux系统自用
id为1000-65535:用户级
[4]用户设定规则都在 /etc/login.defs
三.用户切换:
1.用户查看:
对于用户的查看,常用whoami和id命令来查看:
命令 | 效果 |
---|---|
whoami | 查看当前用户 |
id | 查看用户id信息 |
id -u | 查看用户的用户id |
id -g | 查看用户主组id |
id -G | 查看用户的所有组id |
id -n | 显示名称 |
[1]whoami查看当前用户:
[2]id命令:
2.用户切换:
命令 | 效果 |
---|---|
su - username | 切换用户环境 |
注:
[1]如果root ----> 普通用户,不需要输入后者密码
普通用户 ----> root,需要输入密码
普通用户1 ----> 普通用户2,需要密码
[2]在做用户切换时,当使用完毕用户身份要记得及时用 exit或 logout命令退出,不要在一个shell中反复执行su命令,在一个shell中反复执行su命令会导致环境错乱。
四.用户涉及到的系统配置文件:
文件名 | 内容 |
---|---|
/etc/passwd | 用户身份信息文件,内容:用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell |
/etc/group | 组身份信息文件:内容:组名称:组密码:组id:组的附加成员 |
/etc/shadow | 用户认证信息文件 |
/etc/skel/.* | 用户环境配置文件模板 |
/home/username | 用户家目录 |
文件/etc/passwd,包含用户身份信息:
文件/etc/group,包含组身份信息:
文件/etc/shadow,包含用户信息认证:
五.用户和用户组的建立和删除:
使用/usr/sbin/中的useradd,userdel,groupadd,groupdel分别可以执行用户的建立和删除,以及用户组的建立和删除,在对于用户信息进行管理时可以监控/etc/passwd,对于用户组来说可以监控/etc/group,所以针对以下实验可以设置监控:
![](/qrcode.jpg)
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo=======;ls -l /home"
对于用户的新建和删除:
命令 | 效果 |
---|---|
useradd username | 用户建立 |
useradd -u id username | uid |
useradd -g id username | 主组id |
useradd -G id username | 附加组id |
useradd -d dir username | 指定用户家目录 |
useradd -M username | 建立用户时不建立家目录 |
useradd -c word uaername | 指定用户说明 |
useradd -s shell username | 指定用shell |
userdel -r username | 删除用户 -r 删除用户的系统配置文件 |
对于用户组的建立和删除:
命令 | 效果 |
---|---|
groupadd groupname | 组建立 |
groupadd -g id groupname | 指定组名称 |
groupdel groupname | 组删除 |
实验:
[1]useradd新建用户以及参数效果,结合userdel一起实验:
useradd用于直接新建用户,在监控界面也会有所变化:
useradd -u id可以指定用户的uid:
useradd -g id指定主组id:
useradd -G id指定副组id:
useradd -d dir指定用户家目录:
useradd -M不建立家目录:
useradd -c增加用户说明:
useradd -s shell指定shell:
[2]groupadd新建用户组,结合groupdel一起实验:
groupadd用于直接新建用户组:
groupadd -g id指定组的名称:
六.用户和用户组的信息管理:
usermod和groupmod可以用于用户信息和用户组信息的管理:
命令 | 效果 |
---|---|
usermod -l | 更改用户名称 |
usermod -u | 更改用户id |
usermod -g | 更改主组id |
usermod -G | 更改副组id |
usermod -aG | 添加用户附加组身份 |
usermod -c | 更改用户说明 |
usermod -d | 更改家目录指向 |
usermod -md | 更改家目录指向同时更改家目录名称 |
usermod -s | 更改默认shell |
usermod -L | 冻结账号 |
usermod -U | 解锁 |
groupmod -g | 更改用户组id |
usermod -l 更改用户名称:
usermod -u更改用户id:
usermod -g更改主组id:
usermod -G更改副组id以及usermod -aG添加用户附加组身份:
usermod -c更改用户说明:
usermod -d更改家目录指向:
usermod -md更改家目录指向同时更改家目录名称:
usermod -s更改默认shell:
usermod -L冻结账号以及usermod -U解锁:
七.用户认证信息管理:
1.用户名称:
命令 | 效果 |
---|---|
passwd -S westos | 查看密码状态 |
2.用户加密字符:
对于用户加密字符,在/etc/shadow可以查看用户认证信息,shadow文件只有root用户可以查看,其他用户都是只读,实际上该文件是用户登陆时与用户登陆名进行比对,用于系统查看:
对于/etc/shadow的说明:每一行内容共有8位有效位数:
格式为:用户名称:用户密码加密字符:用户密码最后一次被修改的时间:密码最短有效期:密码最长有效期:密码过期前:警告期:账号非活跃期:账号到期时间:用户自定义位(第九位)
所以在对于用户加密字符修改时应先设定监控,监控命令:
tail -n 3 /etc/shadow
对于用户的密码passwd:加密分为对称和非对称加密:非对称加密:加密跟解密的时采用的方式不同(如:开门)对称加密采用的方式相同(如:指纹)
普通用户只能用passwd进行交互修改密码,超级用户可以用非交互方法进行修改,用echo和管道修改
企业8系统passwd跟usermod在更改锁定状态时优先级相同,在企业8之前的系统中二者级别不同
以下介绍修改用户加密字符的指令:
命令 | 效果 |
---|---|
passwd | 用户更改密码 |
命令 | 操作 |
---|---|
echo newpasswd 管道 passwd --stdin user | 超级用户更改其他用户密码(非交互模式) |
命令 | 效果 |
---|---|
passwd -l user | 冻结账号认证 |
passwd -u user | 解锁账号认证 |
passwd -d user | 密码删除 |
passwd -e user | 修改默认使用时间 |
chage -d day user | 修改默认使用时间为day(默认使用时间为从1970-1-1算到今天的时间,如果day是0,则账号必须修改密码才能登录系统 |
passwd -n day user | 密码最短有效期,即在day内不可更改密码 |
chage -m day user | 密码最短有效期,即在day内不可更改密码 |
passwd -x day user | 密码最长有效期,即在day内用户必须更新密码否则会被冻结 |
chage -M day user | 密码最长有效期,即在day内用户必须更新密码否则会被冻结 |
passwd -w day user | 密码过期警告,day为账号过期前的警告时间 |
chage -W day user | 密码过期警告,day为账号过期前的警告时间 |
passwd -i day user | 认证非活跃天数,账号认证最大时间超过后还能用多久 |
chage -I day user | 认证非活跃天数,账号认证最大时间超过后还能用多久 |
chage -E “2021-2-2” | 到2021-2-2这天会被冻结 |
[1]passwd -l user冻结passwd -u user解冻:
[2]passwd -d user密码删除:
[3]passwd -e和chage -d修改默认使用时间:
[4]passwd -n和chage -m修改密码最短有效期:
[5]passwd -x和chage -M修改密码最长有效期:
[6]passwd -w和chage -W修改密码过期警告:
[7]passwd -i和chage -I修改认证非活跃天数:
[8]chage -E修改冻结时间:
八.用户权力下放:
在Linux系统中普通用户无法执行系统管理命令,如果需要普通用户执行系统管理动作,则需要root用户来进行授权,普通用户授权方式:“sudo”
作用:可以使普通用户使用指定的用户身份运行命令
授权方法:
命令 | 效果 |
---|---|
visudo | 编辑/etc/sudoers并提供语法检测 |
在文件的100行进行编辑,方便修改以及代码规范性编辑,修改格式:
username hostname=(newusername) NOPASSWD:/command1, /command2
注:/command1和/command2之间必须要用逗号+空格来隔开
例:westos用户在linux.westos.com使用超级用户免密执行useradd和userdel:
westos linux.westos.com=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel
测试实验:
权力下放至westos用户并执行useradd和userdel:
先在root用户下配置文件,后登录westos用户用sudo 相应命令执行相应命令:
先用root用户编辑用户权力配置文件:
再登录该用户并进行测试: