如何做到对linux系统的用户管理了如指掌?

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

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

2.linux系统用户存在的意义

用户是linux系统最底层的安全设备,属于权限问题,系统要回收权力
系统用户即系统的使用者,用户管理是对文件进行管理,用户的存在是为了回收权力

3.linux系统组存在的意义

用户组是用户的延伸,可以得到身份,共享用户的权力
相当于我是我自己,但我还属于我的家,我和家人就组成了初始用户组
在学校,我属于自己班级的一员,我和班里的同学组成了附加用户组
组的存在是为了共享权力,组和用户是两个不同的机制

组的分类:

初始组用户刚建立时就加入的组
附加组用户后期加入的组

4.搭建实验环境

声明:为了防止真机被搞坏,关于用户管理这一部分操作我将在desktop这台虚拟机里面做

步骤:在真机的shell里面输入命令打开desktop虚拟机

在这里插入图片描述

在这里插入图片描述

5.怎样查看linux系统用户?

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

id查看正在使用的用户的所有id信息
id -u查看用户的uid
id -g查看用户的gid
id -G查看用户所在的所有组的id
id -n显示名字而不显示id数字

id 查看正在使用的用户的所有id信息
在这里插入图片描述
在这里插入图片描述
id -u ##查看用户的uid(用户自己的身份证号)
在这里插入图片描述
在这里插入图片描述
id -g ##查看用户的gid(用户所属初始组的身份证号)
在这里插入图片描述 在这里插入图片描述

id -G ##查看用户所在的所有组的id(用户所属附加组的身份证号)
在这里插入图片描述
在这里插入图片描述
id -n ##显示用户的名字而不显示id数字
在这里插入图片描述
在这里插入图片描述
(3)切换用户:
gnome–session–quit–force ##注销当前用户,用其他用户登陆

su - 用户名称(前提是该用户在系统当中已经存在,若不存在需要现在超级用户模式下新建立用户)
在这里插入图片描述
在这里插入图片描述
su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
(否则环境不改变)
在这里插入图片描述
注意

su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户,否则会造成用户紊乱

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

其实用户也是文件,对用户的管理就是对文件的管理
用户其实就是以文件的方式存储的,和文件一样

默认shell的指定有哪些可以查看系统中/etc/shells文件
在这里插入图片描述
(1)用户信息文件: /etc/passwd
说明:用户信息文件里面存储了用户的一些基本信息
包括的内容:用户名称:用户密码:uid:gid:说明:家目录:默认shell
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

(2)用户组信息文件: /etc/group
说明:用户组信息文件里面存储了用户所属组(用户组)的一些基本信息
包括的内容:组的名字:组的密码:组的id:组的成员
在这里插入图片描述
在这里插入图片描述

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

(3)认证信息文件: /etc/shadows
说明:认证信息文件里面包括了一些认证信息,比如每个用户登陆时的密码
包括的内容:用户名称:密码(sha512非对称加密)
在这里插入图片描述
在这里插入图片描述
(4)默认开启shell的配置,用户的骨文件:/etc/skel/.*
说明:骨文件里面存储了默认用户和系统对话工具的相关信息
在这里插入图片描述
在这里插入图片描述
(5)用户的家目录: /home/username
注意:家目录指的是该用户建立的所属目录

用户其实就是文件的内容以及文件内容所指定的那些文件
uid相当于用户的身份证号 ,真正区别用户的不是名字,而是uid
用户说明和用户名字不一样
组用户为附加用户 ,并不是原有用户
初始组和附加组不一样
目录名称目录说明目录下的内容格式解释说明
/etc/passwd用户信息文件用户名称:密码:uid:gid:说明:家目录:默认shell默认shell的指定有那些可以查看系统中/etc/shells文件,在此文件中,有nologin不可与系统进行交流对话,即不含有交互界面
/etc/group用户组信息文件组的名字:组密码:组id:组成员
/etc/shadows认证信息文件
/etc/skel/.*默认开启shell的配置,用户的骨文件
/home/username用户的家目

7.用户组的管理(用户组管理命令)

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

(1)动态监控每一个命令作用后的状态采用watch命令

实时监控的命令    ### watch -n 监控间隔时间;ctl+c退出
比如:watch -n 1 "tail -n 3  /etc/passwd   /etc/group  ;  ls  -l  /home/"
首先打开一个shell,监控自己建立文件的过程
输入监控命令 watch 由里到外输入命令,不易出现错误
用户信息监控命令
watch -n 1 “tail  -n  3  /etc/passwd  /etc/group ; ls  -l  /home “
注意:ctrl+c可以退出,watch -n 1 表示每秒更新一次。

(2)用户组的建立:groupadd
groupadd 用户组名
在这里插入图片描述
(2)用户组的删除:groupdel
groupdel 用户组名
在这里插入图片描述
(3)groupadd -g uid 用户组名字 ###建立用户组并指定用户组的id

在这里插入图片描述
注意

当建立一个用户组的时候,若显示已经存在,则直接删除再建立(这就是为什么每次实验前需要清空实验环境);
在建立一个用户组的同时它的gid会被同时给定,具体的范围可以查看一个文件预先知道;
如果想要自己指定uid,则先删除刚才建立的用户组,在建立的同时指定uid   ###  groupadd -g uid 用户组名字;
建立用户组的同时也会建立它的家目录,同样删除用户组的同时也会删除它的家目录(这一点与用户的管理不一样);
用户组不能重复建立,一定要先删除才可以建立;
在建立用户之前,可以查看/etc/login.defs这个文件,查看所有内容的规则(id范围等等),但是这些建立用户的时候都可以指定修改;

vim /etc/login.defs

在这里插入图片描述
建立用户组 组的管理 不能重复
组的建立与删除整体注意事项

首先打开一个shell设置监控信息 ,当watch监控 多个命令时,多个命令之间用分号隔开 并且要加双引号
再打开一个shell设置用户组的信息groupadd     groupdel 
如果要改用户组的uid 必须用 groupadd  -g  uid   用户组名
因为用户组不能重复建立 必须删除才能重新建立,在重新建立的同时直接给用户组的uid即可
在虚拟机做实验时必须先reset虚拟机 ,否则有的用户组已经建立(影响实验效果) 每次都保证有一个干净的实验环境
根下/root(超级用户)  根下/home(普通用户)

8.用户的管理(用户管理命令)

useradd 用户名建立用户时,读取/etc/login.defs 文件内容确定规则
useradd -u 6666 用户名建立用户的同时指定用户uid
useradd -g 21 用户名指定用户初始组id,“21用户组必须是存在的”
useradd -G 21 用户名指定用户的附加组id “21用户组必须存在”
useradd -c “xxxxx” 用户名指定用户的说明
useradd -d /home/lee 用户名指定用户的家目录
useradd -s /bin/sh 用户名指定用户的默认shell

在这里插入图片描述
在这里插入图片描述
(1)用户的建立:useradd
useradd 用户名 ###建立用户的同时会建立它的配置文件(包括用户的组信息和用户的家目录信息)

在这里插入图片描述
(2)用户的删除:userdel

  userdel    用户名     ###删除用户但不删除用户的配置文件
  userdel -r 用户名     ###删除用户的同时还会删除用户的配置文件

注意:一个用户的id 包括:uid(用户自己的id) gid(用户所属初始组的id) group(所有组)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)useradd -u uid 用户名 ###指定用户的id
在这里插入图片描述
(4)useradd -g gid 用户名 ###指定用户的初始组id(用户组gid必须是存在的)
在这里插入图片描述
(5)useradd -G id 用户名 ###指定用户附加组的id(用户组id必须是存在的)
在这里插入图片描述
(6)useradd -c “hello” 用户名 ###指定用户的说明
在这里插入图片描述
(7)useradd -d /home/lee 用户名 ###指定用户的家目录
在这里插入图片描述
(8)useradd -s /bin/sh 用户名 ###指定用户的默认shell

在这里插入图片描述
注意

当建立一个用户的时候,若显示已经存在,则直接删除再建立(这就是为什么每次实验前需要清空实验环境); 
删除一个用户的时候必须 -r ,否则它的配置文件还存在,就不能重新建立;
用户也不能重复建立,一定要先删除再建立;
当只剩下家目录的时侯,家目录是一个文件,用rm 删除家目录文件即可
建立用户的同时会建立他的组信息,家目录信息;
用户建立的数据可以设定 ,g为初始组 ,G为附加组  ;                                     
除了密码不能指定外,其他用户信息建立时均可以指定;
默认shell(和系统对话采用的软件,系统有的shell才可以指定 ),说明(登陆)
每次改一个参数都要先删除一下  ,试一个删一个 弄清楚每一个参数的作用;
指定shell的作用: 让用户和系统 使用同一个聊天软件;
指定说明的作用:登陆系统时显示的用户说明;

总结:以上改用户组和用户的信息都需要先删除,在新建立的同时指定信息

9.直接改用户信息(不用删除再建立,直接改用户信息)

注意:以下为不用再新建用户,直接在已有的用户基础上修改用户的信息

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)usermod -l 新名称 用户名 ###更改用户的名称
在这里插入图片描述
在这里插入图片描述
(2)usermod -u uid 用户名 ###更改用户的uid
在这里插入图片描述
在这里插入图片描述
(3)usermod -g gid 用户名 ###更改用户的初始组(gid必须是存在的)
在这里插入图片描述
在这里插入图片描述
(4)usermod -G id 用户名 ###更改用户的附加组
在这里插入图片描述
在这里插入图片描述
(5)usermod -aG id 用户名 ###添加用户的附加组
在这里插入图片描述
在这里插入图片描述
注意:使用-G时,如果已有附加组,则会代替;如果不想代替,想让两个都存在的话,使用-aG

(6)usermod -G “” 用户名 ##删除用户所有附加组的身份
在这里插入图片描述
(7)usermod -c “XXX” 用户名 指定用户说明文字
在这里插入图片描述
在这里插入图片描述
(8)usermod -d / / 用户名 ###只改变家目录的指向
(其实就是相当于改变家庭地址)家目录指向,只是存放东西的一个路径,实际不改变文件的内容
在这里插入图片描述
在这里插入图片描述

(9)usermod -md / / 用户名 ###同时改变家目录的指向和家目录的名字
在这里插入图片描述
在这里插入图片描述
(10)usermod -s /bin/sh 用户名 更改用户的shell
在这里插入图片描述
在这里插入图片描述

“”将动词变名词   指定说明时加“”和不加“”的区别
加“”是一个名词,该动作不执行 
不加“”是一个动词,该动作要执行

附加组的作用:加到一个组才有资格,有权利。加入附加组是为了共享权力 ,与初始组不一样

家目录指向:改变了文件内容  ,对系统来说找东西要改路径  ,对用户来说不用走新的路径
怎样查看所有的shell类型 ( 用cat一个文件查看 cat /etc/shells )   ### cat /etc/shells

在这里插入图片描述

怎样查看一个文件的三个时间戳 ( 用stat ) 
家目录指向其实就像一个路径
uid为用户自己的id        gid为用户的初始组id         groups为用户的所有组的信息
什么是家目录  :用户的家目录  , 建立用户的时候直接指向了它在哪里(默认的位置)
更改家目录指向 -d    更改家目录指向及其名字 -md
清屏 ctrl+l或者clear

10.用户信息认证

注意

做这个实验的时候也要监控  watch -n 1 tail -n 3 /etc/shadow
/etc/shadow这个文件是记录用户的认证信息
例如:westos:!!:17895:0:99999:7:   :   :   ###一共有9项内容(此文件一共有9列)
              [1] [2]  [3] [4] [5] [6][7] [8] [9]

在这里插入图片描述

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

有9项 弄清楚每一项的含义
(1)passwd -S 用户名 ###查看用户密码信息
在这里插入图片描述
(2)用户密码的相关操作

passwd 用户名更改用户的密码
passwd -l 用户名在用户密码前加入“!!”
passwd -u 用户名解开已经上锁的用户
usermod -L 用户名在用户密码前加入“!”
usermod -U 用户名在密码不为空的时候使用
passwd -d 用户名清空用户的密码

监控watch -n 1 “tail -n 3 /etc/shadow”
在这里插入图片描述
在这里插入图片描述

普通用户改密码时
1.必须知道当前用户原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合

passwd 用户名 ###更改用户的密码
在这里插入图片描述

passwd -l 用户名 ###在用户密码前加入“!!”
在这里插入图片描述
passwd -u 用户名 ###解开已经上锁的用户
在这里插入图片描述
usermod -L 用户名 ###在用户密码前加入“!”
在这里插入图片描述
usermod -U 用户名 ###在密码不为空的时候使用
在这里插入图片描述
passwd -d 用户名 ###清空用户的密码
在这里插入图片描述
密码在/etc/shadow这个文件当中 只有超级用户可以操作
!!表示被封锁 改账户不能登陆
passwd比usermod强度更强

usermod -L 用户名冻结用户
usermod -U 用户名解锁用户

10.密码管理(各个部分的修改)

(1)用户密码最后一次被更改的时间:

passwd   -e    用户名     	##会改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
chage   -d 0   用户名 	      ##两个命令功能类似

在这里插入图片描述
在这里插入图片描述
(2)用户密码最短有效期:

passwd -n 1  用户名   ###用户在一天之内不能修改密码
chage  -m 1  用户名    ###两个命令的效果一样

在这里插入图片描述
在这里插入图片描述
(3)用户密码最长有效期:

passwd -x 30 用户名   ###设定用户在30天之内必须修改密码
chage  -M 40 用户名

在这里插入图片描述
在这里插入图片描述
(4)密码警告期限:

passwd -w 2 用户名    ###密码过期前两天有警告输出
chage  -W 2 用户名

在这里插入图片描述
在这里插入图片描述

(5)用户非活跃天数:

passwd -i 1 用户名    ###密码过期后仍可登陆系统的天数
chage  -I 1 用户名

在这里插入图片描述
在这里插入图片描述
(6)用户到期日:

chage  -E 2019-6-6 用户名   ###用户在这一天会被冻结  注意:此时间是从1970-1-1开始计算的累计天数|

在这里插入图片描述
==用户的密码一共包括9个部分 要会对每一部分进行修改 ==

(7)用户自定义列,目前没有启用

设置密码: passwd -s 
第一次要强制改密码  -e  更改默认使用天数
一个系统上面有很多个用户,功能开的越多系统性能越不好
用户管理命令只有超级用户才可以
一般普通用户不能新建用户
怎样用 普通用户 新建  普通用户?
不能把一个用户的id为o
将超级用户权力下放(在一个文件里面)

11.用户授权

(1)什么叫用户授权?

一般情况下普通用户是不能新建用户或者新建用户组,只有超级用户有这个权力
现在想让普通用户使用超级用户的权力来建立用户或者用户组
此时需要把超级用户的权力给普通用户,这就叫用户授权
超级用户把自己的权力分享给普通用户,也可以叫权力共享

(2)具体内容:

权力下放文件为/etc/sudoers
此文件可以直接用vim编辑,但是不提供语法检测
也可以使用visudo编辑此文件,visudo是提供语法检测的==

(3)怎样使普通用户采用超级用户的权力?

步骤一:先建立一个普通用户 useradd 用户名
在这里插入图片描述
步骤二:再看是否能建立新用户 su - 用户名 (查看是否为普通用户)useradd
在这里插入图片描述
步骤三:打开一个文件 visudo (/etc/sudoers)
在这里插入图片描述
在这里插入图片描述

步骤四:在改文件的任意一行可以写要操作的东西(一般为了规范 在100行作用写)
在这里插入图片描述
在这里插入图片描述
内容为:用户名字 主机名字(hostname)=(root) NOPASSWD: 要执行的命令/usr/sbin/useradd
在这里插入图片描述
总结:权力下放完毕,此时westos用户可以免密建立用户了
步骤五:测试一定要用sudo

当改完visudo时不能退出时,按e回到文件查找错误
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

无nopasswd时,在普通用户下执行时需要密码,密码可以在超级用户下更改
nopasswd为免密操作 
第一次使用超级用户时要使用自己的密码 用root passwd改密码
注意空格问题:=(root)之前不能有空格 
注意免密码和不免密码的区别在于有没有 NOPASSWD
超级用户下放权力是可以同时下放好几个,采用分号+空格 分割开
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值