Linux安全优化之用户管理

1.为什么要对用户进行管理?

  • 因为Linux系统是一个多用户多任务的操作系统,管理用户之后才能保证系统有条不紊的工作

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

  • 用户是操作者在系统中的身份标识,组是逻辑概念,是用户的集合;用户的存在是为了限制权限;组的存在是为了归类用户便于管理权限

3.用户在系统中的存储方式

  • 用户在系统中就是文件中的字符串,每个字符串映射了该用户所用到的系统资源

4.如何查看Linux系统用户?

(1)查看当前正在使用的用户:" whoami "
在这里插入图片描述
(2)用户信息的查看

命令含义
id查看指定用户id信息
id -u查看用户的uid
id -g查看用户的gid
id -G查看用户所在的所有组的id
id -n显示名字而不显示id数字

id 查看正在使用的用户所有id信息
在这里插入图片描述
id 用户名 查看指定用户的信息
在这里插入图片描述
id -g 查看用户的gid(用户所属初始组的身份证号)
在这里插入图片描述
id -G 查看用户所在的所有组的id(用户所属附加组的身份证号)
在这里插入图片描述
id -n 显示用户的名字而不显示id数字
在这里插入图片描述
(3)用户身份的切换方式及环境变量
gnome-session-quit --force 注销当前用户,用其他用户登录

su 用户只切换用户身份,不切换用户环境
su - 用户切换用户身份及用户环境

su - 用户名称 (前提是该用户已经在系统中存在,若不存在需要现在超级用户模式下新建立用户)
注意:
每次"su"切换到其他用户操作之后必须退出,然后再次切换到其他用户
执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要密码,平级用户之间切换也需要密码
在这里插入图片描述
在这里插入图片描述

5.深入分析用户涉及到的配置文件及内容

/etc/passwd用户信息库
/etc/group组信息库
/home/用户同名目录默认用户家目录
/etc/skel/所有文件用户环境配置文件模板
/etc/shadow用户认证信息
/etc/gshadow组认证信息

(1)用户信息库
在这里插入图片描述
在这里插入图片描述
默认shell的指定有哪些,在系统中的/etc/shells中查看
在这里插入图片描述

用户名称用户自己的名字
x用户密码
uid用户自己的身份证号
gid用户所属组的身份证号
说明默认shell的指定有哪些,在系统中的/etc/shells中查看
/home/ /该文件一开始在的目录
默认shell和系统聊天所开启的软件

(2)组信息库
在这里插入图片描述
在这里插入图片描述

组的名称这个组的名字
x组的密码
组的id这个组的身份证号
组的成员这个组里面包括了哪些用户

6.用户组的管理

grouadd 用户组名字建立用户组
groupadd -g 3333 用户组名字建立用户组并指定用户组的id为3333
groupdel 用户组名字删除用户组

(1)用户信息监控命令

watch -n 1 “tail -n 3 /etc/passwd /etc/group”

(2)用户组的建立
在这里插入图片描述
(3)用户组的删除
在这里插入图片描述
(4)建立用户组并指定用户组的id
在这里插入图片描述
注意:
1.当建立一个用户组的时候,若显示已经存在,则直接删除再建立(每次实验前可先reset)
2.当建立一个用户组的同时它的gid会被同时给定,具体的范围可以" vim /etc/login.defs "查看(下图)
3.如果想要自己指定uid,则先删除刚才建立的用户组,在建立的同时指定uid
4.建立用户组的同时也会建立它的家目录,删除用户组的同时也会删除它的家目录
5.用户组不能重复建立,一定要先删除才可以建立
在这里插入图片描述

7.用户的管理

useradd 用户名新建用户
useradd -u 3333 用户名建立用户的同时指定用户uid
useradd -g 40 用户名指定用户初始组id,“40用户组”必须存在
useradd -G 40 用户名指定用户附加组id,“40用户组”必须存在
useradd -c “xxx” 用户名指定用户的说明
useradd -d /home/fam 用户名指定用户的家目录
useradd -s /bin/sh 用户名指定用户的shell

(1)用户信息监控命令

watch -n 1 “tail -n 3 /etc/passwd /etc/group”

(2)建立新用户
建立用户的同时会建立它的配置文件(包括用户的组信息和用户的家目录信息)
在这里插入图片描述
(3)用户删除
userdel 用户名 删除用户但不删除用户的配置文件
userdel -r 用户名 删除用户的同时会删除用户的配置文件
在这里插入图片描述
(4)指定用户的uid :useradd -u 111 jkl
在这里插入图片描述
(5)指定用户的初始组id(-g:用户组gid必须是存在的)
建立用户uio的同时指定它的初始组为组id是21的组
在这里插入图片描述
(6)指定用户附加组的id (-G:用户组gid必须是存在的)
建立用户uio的同时指定它的附加组为组id是40的组
在这里插入图片描述
(7)指定用户的说明(-c “xxx”)
建立用户ufo的同时给它的说明是haha
在这里插入图片描述
(8)指定用户的家目录 (-d /home/ /)
建立用户edc的同时指定它的家目录为/home/lee
在这里插入图片描述
(9)指定用户的默认shell(-s)
建立用户mko的同时指定它与系统对话的默认shell类型是/bin/sh
在这里插入图片描述
注意:
除密码不能指定外,其它用户信息建立时都可以指定

  • 更改用户信息(usermod)
usermod -l 新名称 用户名更改用户的名称
usermod -u uid 用户名更改用户uid
usermod -g gid 用户名更改用户的初始组
usermod -G gid 用户名更改用户的附加组,可以接组名,也可以接id
usermod -aG id 用户名添加用户的附加组
usermod -G “” 用户名删除用户所有附加组的身份
usermod -c “xxx” 用户名指定用户说明文字
usermod -d /home/lee 用户名更改用户家目录的指向
usermod -md /home/lee 用户名更改用户家目录
usermod -s /bin/sh 用户名更改用户的shell

(1)更改用户的名称
建立用户hupu,再更改用户名为eee
在这里插入图片描述
在这里插入图片描述
(2)更改用户的uid
将初始建立时的uid1001改成3333
在这里插入图片描述
(3)更改用户的初始组(gid必须是存在的)
将初始建立时的gid1001改为40
在这里插入图片描述
(4)更改(替换)用户的附加组
将组21作为用户的附加组
在这里插入图片描述
(5)添加用户的附加组
添加组976为用户的附加组
在这里插入图片描述
(6)删除用户所有附加组的身份
在这里插入图片描述
(7)更改用户说明文字
更改用户说明文字为" hahei "
在这里插入图片描述
(8)更改用户家目录指向(相当于改变家庭地址)
在这里插入图片描述
(9)更改用户家目录(同时改变家目录的指向和家目录名字)
在这里插入图片描述
(10)更改用户的shell
在这里插入图片描述
注意:
使用 " -G "时,如果已有附加组,则会代替,如果不想代替,想让两个都存在,使用 " -aG "
附加组的作用:加入一个组才有资格,有权利。加入附加组是为了共享权力,与初始组不一样

8.用户认证文件的内容分析

/etc/shadow 用户认证信息文件
在这里插入图片描述

第一列用户名称
第二列用户密码的加密字符串,如果加密字符串前出现" ! ",该用户的账号被冻结
第三列从1970-1-1日起到用户密码最后一次被修改时的总天数
第四列密码最短有效期,如果此位有设定数字,那么在此数字范围内的天数里不能更改用户的密码
第五列密码最长有效期,用户必须在此有效期限内更新密码,如果超时会被冻结
第六列密码警告期限,在过期前指定天数内会发送警告信息给用户
第七列密码非活跃天数,此位默认为空,如果设定数值,那么在密码最长有效期限过后仍然可以使用的天数
第八列用户到期日,默认为空,指账号一定会被冻结的时间点,这个时间是从1970-1-1开始计算的累计天数
第九列用户自定义列,未被启用

说明:用户密码的相关操作

passwd 用户名更改用户的密码
passwd -l 用户名在用户加密字符串前加入“!!”,锁住
passwd -S 用户名查看用户密码信息
passwd -u 用户名解开已经上锁的用户
passwd -d 用户名密码清空
passwd -e 用户名改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
usermod -L 用户名在用户加密字符串前加入“!”(冻结用户)
usermod -U 用户名在密码不为空的时候使用 (解锁用户)

密码在/etc/shadow文件中,只有超级用户可以操作

  • 密码管理
watch -n 1 “tail -n 3 /etc/passwd /etc/shadow”

建立用户westos 监控其用户信息
在这里插入图片描述
成功设置"hello"为用户westos的密码
在这里插入图片描述
在用户westos密码加密字符串前加入"!!"(锁密)
在这里插入图片描述
将"!!"解锁(passwd -u westos)
在这里插入图片描述
冻结用户westos,在密码加密字符串前加入"!"
在这里插入图片描述
(passwd -U westos)解锁 在密码不为空的时候使用
在这里插入图片描述
passwd -d westos 清空密码
在这里插入图片描述
passwd -S westos 查看用户密码信息
在这里插入图片描述
passwd -e westos 改变用户最后一次改密码的时间为0,用户在登录系统时会被强制改密码
chage -d 0—任意数字 用户 改变用户最后一次改密码的时间为0—任意数字

在这里插入图片描述
用户密码最短有效期:passwd -n 2 westos 用户在2日内不能修改密码
chage -m 2 用户名 两个命令的执行结果一样

在这里插入图片描述
用户密码最长有效期:passwd -x 66 westos 设定用户在66天内必须修改密码
chage -M 66 用户名 两个命令的执行结果一样

在这里插入图片描述
密码警告期限:passwd -w 3 westos 密码过期前3天有警告信息提示
chage -w 3 用户名 两个命令的执行结果一样

在这里插入图片描述
用户非活跃天数:passwd -i 1 westos 密码过期后仍可登陆系统的天数
chage -I 1 用户名 两个命令的执行结果一样

在这里插入图片描述
用户到期日:chage -E “2020-01-07” 用户在这一天会被冻结,此位的数是从1970-1-1开始算起
在这里插入图片描述

9.用户授权

一般情况下普通用户是不能新建用户或者用户组,只有超级用户才有这个权力,想让普通用户使用超级用户的权力来建立用户或者用户组,此时需要把超级用户的权力给普通用户,这就叫用户授权
超级用户把自己的权力分享给普通用户,也可以叫做权力共享
权力下放文件为/etc/sudoers,此文件可以直接用vim编辑,但是不提供语法检测
使用visudo编辑此文件是提供语法检测的
(1)建立一个普通用户 useradd westos,再试下在普通用户下是否能建立新用户
可以看到普通用户不能建立新的用户
在这里插入图片描述
(2)打开文件visudo(/etc/sudoers)
在这里插入图片描述
在这里插入图片描述
(3)查看我的主机名称、一些权力下放的路径
在这里插入图片描述
(4)在改文件的任意一行可以写要操作的命令(为了规范,一般在100行左右写)
内容为:用户名字 主机名字=(root) NOPASSWD:要执行的命令/usr/sbin/useradd,/usr/sbin/usermod
在这里插入图片描述
(5)测试一定要用"sudo"
可以发现普通用户westos可以建立用户了
在这里插入图片描述
注意:
当改完visudo不能退出时,按e回到文件查找错误
无nopasswd时,在普通用户执行时需要密码,密码可以在超级用户下更改;nopasswd为免密操作
空格问题:=(root)之间不能有空格

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值