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

密码的创建与更改

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

交互式设置用户密码

image.png

非交互式设置用户密码

image.png

示例:批量创建一百个用户并设置相同的密码

image.png

image.png

为用户修改密码

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

密码怎么设才算复杂

示例1:随机数


image.png

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


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)
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

执行下图命令


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 #创建邮箱

用户组的管理

image.png

image.png

image.png

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

image.png

创建系统组

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

2.修改组groupmod

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

3.删除组groupdel

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


image.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中自带的别名操作, 将多个用户定义成一个组


image.png

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

User_Alias OPS = oldboy,oldgirl 
User_Alias DEV = alex

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


image.png

3.使用sudo开始分配权限


image.png

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


image.png
image.png

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


image.png

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


image.png

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

4.在sudo中配置相应的规则
image.png

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


image.png

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

image.png

sudo执行的流程

image.png

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容