day10--用户管理之创建密码,创建流程,用户组管理,切换用户,提权

密码的创建与更改

为新用户设定密码只有root才能执行,且密码要尽可能的复杂 [0-9][a-Z][a- Z] [!@#$%^&]

交互式设置用户密码
18901143-61bae4e428e1c6bc.png
image.png
非交互式设置用户密码
18901143-c87990465d08d706.png
image.png
示例:批量创建一百个用户并设置相同的密码
18901143-5502c279260c465e.png
image.png

18901143-f82d076f638e50e1.png
image.png

为用户修改密码

 1.为自己修改密码直接使用passwd 注意密码需要复杂一
点,并达到8位
2.为别人修改密码 (root) passwd username

密码怎么设才算复杂

示例1:随机数


18901143-1c26c2fb25ddc521.png
image.png

示例2:mkpasswd随机生成字符串,-l设定密码长度 -d 数字 -c 小写字母 -C 大写字母 -s 特殊字符


18901143-d3ee3e836b71cb8f.png
image.png

示例3:lastpass 在线 支持 windows MacOS Iphone 浏览器插件 Android

小结:

1.为新用户添加密码 只有root权限才可以
2.为用户变更密码也只有root才可以
3.普通用户只能修改自己的密码,..无法修改其他人的密码 
4.密码的修改方式有两种,一种是交互式 非交互式

用户创建的流程

在用户创建的过程需要参考 /etc/login.defs 和/etc/default/useradd 这两 个文件,默认参考. 如果在创建用户时指定了参数,则会覆盖 (默认 /etc/login.defs 和/etc/default/useradd)
18901143-b5c1ca8034a2620c.png
image.png
图中命令执行后的内容具体介绍如下
MAIL_DIR /var/spool/mail     #创建的邮箱所在的位置 
PASS_MAX_DAYS 99999          #密码最长使用的天数 
PASS_MIN_DAYS 0              #密码最短时间的天数 
PASS_MIN_LEN 5               #密码的长度 
PASS_WARN_AGE 7              #密码到期前7天警告 
UID_MIN 1000                 #uid 从1000开始 
UID_MAX 60000                #uid从6w结束 
SYS_UID_MIN 201              #系统用户的uid 从201 开始
SYS_UID_MAX 999              #系统用户的uid最大到 999 
GID_MIN 1000 
GID_MAX 60000 
SYS_GID_MIN 201 
SYS_GID_MAX 999 
CREATE_HOME yes              #给用户创建家目录,创建 在/home 
UMASK 077 USERGROUPS_ENAB yes 
ENCRYPT_METHOD SHA512

执行下图命令


18901143-14c845d0c5faf493.png
image.png
图中显示内容具体介绍如下
 #useradd defaults file 
GROUP=100       #当用户创建用户时不指定组,并 且/etc/login.defs中USERGROUPS_ENAB为no时, 用户默认创建给分 配一个gid为100的组.
 HOME=/home     #用户默认的家目录 
INACTIVE=-1     #用户不失效 
EXPIRE=         #过期时间 
SHELL=/bin/bash #默认登录shell 
SKEL=/etc/skel  #默认用户拷贝的环境变量 
CREATE_MAIL_SPOOL=yes #创建邮箱

用户组的管理

18901143-41cbc61484820dfa.png
image.png

18901143-39204df247f58dc9.png
image.png

18901143-be446aaf2b4839f9.png
image.png

1.创建组groupadd [-g GID]组名

18901143-6e258cb32f2439f5.png
image.png

创建系统组

18901143-13293fab726e6062.png
image.png
    创建用户后,如需使用该用户登录系统则需要为用户设定密码,设定密码使用passwd命令.
    建议密码复杂一些,长度大于10,出现各种特殊字符,无任何规律(不要出现名字,电话生日) 

2.修改组groupmod

-g 修改组的GID
18901143-f23db59499ae32a6.png
image.png
-n 修改组名称
18901143-f6e6e3e846bf9768.png
image.png

3.删除组groupdel

删除组 如果要删除基本组,需要先删除基本组中的用户才可以删除 该组


18901143-0617411ecfb5e124.png
image.png
18901143-64a6a22a62f4b120.png
image.png

1.先创建一个名叫wwq的用户,默认分配了一个以wwq命名的私有组
2.再建立一个名为Wwq的用户并指定一个附加组为WWq,
3.给wwq追加两个附加组,分别为WWQ和WWq,
4.如果删除用户wwq,同时会删除他默认建立的主组wwq
5.删除WWQ这个组时,由于这个组并没有分配给其他用户使用,
此时已经是个空组,可以直接删除.
6.删除WWq这个组还被分配给了另一个用户Wwq做了基本组在删除这个组的时候无法将其直接删除.
7.先删除使用它的这个用户之后才能完成删除WWq这个组.

用户提权

  1.su 切换用户
     在切换用户时,必须要知道所要切换的用户的密码,因此安全性不高
   2.sudo 提权
   在提权之前rootyoghurt提前分配好权限,然后关联给用户使用,这种方法复杂但方便,且安全性高.

基本概念

1.交互式  需要不停的交互,例如登录一个已经创建过密码的用户时,提示需要输入密码
2.非交互式 不需要交互,例如在登录用户时不需要输入密码直接登录
3.登录式shell 需要用户名以及密码开启bash窗口
4.非登录式shell 不需要用户名和密码即可开启bash窗口
su -username 属于交互式切换用户登录shell窗口的方式
su username  属于非交互式切换用户登录shell窗口的方式
区别:两者所加载的环境变量不一样
su - username 属于登录式shell 会加载全部的环境变量
su username   属于非登录式shell 会加载部分环境变量[]很有 可能就会出现错误清空]

su切换的缺点:

需要知道切换用户的密码
不安全

PS:通常情况下公司不会让普通用户直接登录root用户,必须先登录普通用户然后在通过普通用户切换至root用户防止外界人员直接连接root用户造成破坏.

sudo提权

流程
1.事先分配好权限
2.直接关联用户

问题1:利用sudo提权时,如果事先分配权限过大,如何通过简单的命令来限制命令的权限,让该用户可以使用一部分,但另一部分不允许使用?
解决方式1.使用sudo中自带的别名操作, 将多个用户定义成一个组


18901143-1f3cd6cc00710e8e.png
image.png

1.使用sudo定义分组,跟系统group没什么关系

User_Alias OPS = oldboy,oldgirl 
User_Alias DEV = alex

2.定义可执行的命令组,便于后续调用


18901143-346abd8783416eab.png
image.png

3.使用sudo开始分配权限


18901143-e51d0a4d0a381299.png
image.png

4.登陆对应的用户使用 sudo -l 验证权限


18901143-56ea3a1f2fd8d9af.png
image.png
18901143-2ed1269a46ab6809.png
image.png

解决方式2:使用groupadd添加组,然后给组分配sudo的权限,如果有新用户加入,直接将用户添加到该组
1.添加两个真实分组group_dev,group_op


18901143-d647db09cd1ca7f8.png
image.png

2..添加两个用户, group_dev(user_a user_b) group_op(user_c user_d)


18901143-eaa6dc2e96ee7cd3.png
image.png

3.为四个用户分别设置密码为"12"
18901143-d88ca2778167de40.png
image.png

4.在sudo中配置相应的规则
18901143-630d8f0c473a4c6f.png
image.png

5.检查sudo是否配置有错
若输出如图所示则表示配置没有问题


18901143-7ad6ec7a09808b71.png
image.png

6.检查user_a,和user_d的sudo权限
18901143-d40d6694b2235fc9.png
image.png

18901143-75475970eb834a94.png
image.png

sudo执行的流程

18901143-6cd73320e00b4028.png
image.png

如上图当普通用户运行sudo时,先检查/var/db/sudo下是否有时间戳文件,并检查是否过期:
1.如果未过期则检查/etc/sudoers配置文件是否有运行sudo和执行相应命令的权限,若有权限则执行命令并返回执行结果并退出sudo;如果没有权限直接退出sudo
2.如果过期则输入自己的口令,检查/etc/sudoers配置文件是否有运行sudo和执行相关命令的权限,若有权限则执行命令并返回输出结果然后退出sudo,如果无权限直接退出sudo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值