Linux之用户管理

用户的定义

用户和组分别是什么

关于用户:

  • 用户是操作者在系统中的身份。
  • 用户是系统最底层的安全机制的一部分
  • 用户在系统中以字符和文件的形式存在

关于组:
在一个系统中许多权限相同的用户就组成了一个组。一个组内可以有多个用户,一个用户也可以加入多个组。它是逻辑的容器。

举例:
比如 有A B C D 4个人 在linux主机上作业, A B C 3个人 在做同一个项目 建了一个文件夹
这个文件只能A B C 3个人进入,不能让其他用户进入 ,所有就出来用户组,
那么那个D 就 是非用户组。

=注意:
Linux系统是多用户多任务。
多任务是指许多工作同时做,当然这是在用户看来,因为时间短,用户无法察觉而已,比如你在运行qq的时候,后台播放网易云音乐听歌软件。(实际是把cpu的时间分成若干小片,然后分给不同的进程按照优先级进行运行,即按照优先级排队占用cpu资源)。
多用户是指同时有多用户登录系统,windows中不可能两个用户同时运行,必须先注销当前用户,才能登录另一个用户,但是unix和linux不同,可以N多用户同时通过不同终端登录,同时使用,也是按照用户优先权进行cpu分配的。

用户和组存在的意义

用户存在的意义:
对于不同用户权力的限制
组存在的意义:
对不同用户进行分类归组,实现对权力的集中管理。

用户和组的分类

用户的分类:
超级用户(root):管理系统中的所有资源

普通用户:

  1. 系统用户 系统预留的 不能登陆
  2. 登录用户

组的分类:

  1. 按照是不是超级用户组分类
    超级用户组
    普通用户:系统组和登录组

  2. 按照是不是用户的主组
    主组和附加组

  3. 按照组中有的用户的个
    私有组(组名同用户名,且只包含一个用户)
    公共组(组内包含了多个用户)

注意:
系统用户存在的意义?
在这里插入图片描述

什么是3A机制

  1. Account 帐号管理 useradd usermod userdel groupadd等
  2. Authentication 帐号认证
  3. Authorization 用户授权 passwd chage 等

用户的查看

查看当前用户


whoam i                              #查看当前用户是什么

查看系统用户

id                                      #   查看指定用户id信息
id                    -u              #查看用户的userid
id                    -g               #查看用户的主组id
id                    -G              #  查看用户的所有组的id
id                    -n              #显示名字而不显示id数字     此参数必须和其他 u g G等配和使用 不可单独使用

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

用户的切换

gnome-session-quit -- force                              #  注销当前用户
su  - username                                           #   切换到某个用户
su -                                                     #   切换到超级用户
su - - c "命令串"                                        #   仅执行一次root命令
exit                                                    #  退出su 环境

图示:
在这里插入图片描述
=注意:=

  • 切换用户时,需要exit或ctrl+d 否则占用资源 ,可能会且造成身份混乱。
  • "-"表示在切换用户时,同时切换用户环境
    su - westos 切换/etc/bashrc 和/etc/profile(系统环境配置)(loginshell)
    su westos 只切换/etc/bashrc 软件本身的配置 (nologinshell)

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

  • 高切至低级用户,不需要密码,低至高、平级之间需要密码

用户在系统中的存在方式

/etc/passwd 用户信息文件
用户名称 :密码:uid:gid:说明:家目录:默认shell
说明:默认shell的指定有哪些可以查看系统中/etc/shells文件

/etc/group 用户信息组文件
组的名字:组密码:组id :组成员

/etc/shadow 用户认证信息文件

/etc/skel/.* 用户的骨文件
默认开启shell的配置

/home/username 用户的家目录

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

用户的管理

用户的建立和删除

用户信息监控命令

watch -n 1 'tail -n 3 /etc/passwd /etc/group ;ls -l /home '

图示:

在这里插入图片描述

用户

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

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

图示:
1.
在这里插入图片描述2.
在这里插入图片描述
在这里插入图片描述
3.
在这里插入图片描述

4.在这里插入图片描述在这里插入图片描述5.
在这里插入图片描述
在这里插入图片描述

注意

  • 建立的用户名字 不一定和主组名字相同
  • root 用户的uid 默认为0
  • 系统用户一般为 1-499
  • 登录用户500-65530(可登录账号)
  • 当删除某个用户时,出现用户不能删除,正在被某个进程使用,则使用pkill -9 -u 用户名,结束进程,-9 表示不可抗击

用户组

groupadd          组名                    #建立用户组
groupadd       -g   666  redhat      #建立用户组并指定用户组的id为666

groupdel          组名                 #删除用户组
chagrp         redhat    /sc                     #改变用户组                        

更改用户信息

usermod    -l   新名称          原名称(redhat)                            #更改用户名称
usermod    -u   6666            redhat                                    #更改用户uid
usermod    -g     21             redhat                                   #更改用户的初始组
usermod    -G    21              redhat                                  # 更改用户的附加组
usermod    -aG   72               redhat                                 #==添加==用户的附加组
usermod    -G    ""                 redhat                                  #删除用户所有附加组的身份
usermod   -c    "haha"             redhat                                   #指定用户说明文字
usermod    -d   /home/leo           redhat                                  #更改用户家目录的指向
usermod   -md    /home/leo          redhat                                   #更改用户家目录
usermod   -s    /bin/sh                redhat                                #更改用户的shell
usermod    -L                          redhat                                 #冻结用户
usermod     -U                        redhat                                 #解锁用户
       


图示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述==
使用-aG更改附加组时,原来的附加组不会被删除==
2.
在这里插入图片描述3.
在这里插入图片描述在这里插入图片描述在这里插入图片描述

注意:

  1. -G更改附加组 会删掉原来的组
  2. 用户家目录不一定真实存在 所以找到找不到不不一定
  3. -d更改家目录指向时, 具体更改的对不对,不一定 且系统中真实的目录不改
  4. -md 同时会更改系统中真实存在的目录 (移动目录)

=注意:=

  1. etc/shells 文件中 两个nologin结尾的shell 不能够提供交互界面给用户 不能登陆系统

用户认证信息

用户认证信息记录在 /etc/shadows 文件中
图示;

在这里插入图片描述

一条记录由9列字段组成:

第几列代表含义备注
1用户名称
2用户密码加密字符串,默认采用sha512对称加密 ,加密字符串前出现"!" 证明用户被冻结 "!!"代表强度更强
3用户密码最后一次被修改的时间此时间是从1970年1月1日开始计算的累计天数
4密码的最短有效期如果此位有设定数字,那么在此数字范围内的天数内不能修改用户密码
5密码的最长有效期用户必须在此有效期内更新密码,如果超时账号会被冻结
6密码警告期限在过期前指定天数内会发送警告信息给用户
7用户非活跃天数此位默认为空,如果设定数值,代表在密码最长有效期过后仍然可以使用的天数
8用户到期日默认为空,代表账号一定会被冻结的时间点
9用户自定义列目前没有启用

用户密码管理

passwd                 redhat                 #更改redhat密码
passwd      -S          redhat                  #查看用户密码信息
passwd      -l         redhat                 #在用户密码前加入" ! ! "
usermod     -L         redhat                #在用户密码前加入" ! "
passwd      -u         redhat                  #
usermod     -U         redhat                  #在密码不为空时使用
passwd      -d         redhat                 #清空westos密码        无密码登录


chage     -l      redhat             #列出该账号的详细密码参数

图示:

1.在这里插入图片描述在这里插入图片描述2.在这里插入图片描述3.在这里插入图片描述4.在这里插入图片描述
5.在这里插入图片描述
6.在这里插入图片描述

注意:

  • 超户改密码,没有限制

  • 普通用户改密码时

    1.必须知道当前用户原始密码
    2.密码不能和帐号名称相似
    3.密码不能是有序的数字或字母
    4.密码个数要大于8

  • 在建立系统用户时才会使用 把/etc/shadow 中最后一次修改密码的时间 改为0 再次登陆时,强制改密码

  • 加密方式有对称加密和非对称加密等,一般保存在/etc/login/defs文件里

设置用户密码最后一次被修改的时间


passwd           -e        redhat          #改变用户最后一次更改密码时间为0 ,用户再次登陆时,会被强制更改密码
chage           -d   0     redhat          #同上

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

设置用户密码的最短有效期

passwd  -n  1    redhat                 #设置用户在1天之内不能修改密码
chage     -m  1   redhat                #同上

设置用户密码的最长有效期

passwd        -x    20 redhat    #用户在20天之内必须修改密码
chage          -M    20  redhat

设置用户密码的警告期限

passwd      -w    7  redhat              #设定密码过期前7天有警告提示
chage         -W 7  redhat            #同上

设置用户非活跃天数

passwd      -i      3  redhat           #密码过期后仍登陆系统的天数
chage        -I       3  redhat           #同上

设置用户到期日

chage   -E   "2019-12-24"  redhat       # redhat用户会在2019-12-24被冻结,改了之后不会以日期显示,而是显示距离1970年的天数 

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

例题解释

在这里插入图片描述解答:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户权力的下放

1.文件位置

权力下放文件为 /etc/sudoers 直接用vim编辑时,不提供语法检测

可直接在命令行键入visudo 编辑此文件 它提供语法检测

2.下放方式

visudo
专门编辑 /etc/sudoers 文件
由于规范性 一般是在文件100行左右下放权利

用户 主机名称 = (得到的用户身份) 权限命令

3.此时的所有命令必须用sudo来执行

图示:

在这里插入图片描述

注意:

  1. 使用hostname来查看主机名称
  2. 使用which 命令名字 来查看命令所在的文件
  3. 使用find -name 文件名 查看某个文件所在的位置
  4. 使用NOPASSWD:/usr/sbin/useradd实现第一次无密码执行命令

3.使用集合的方式来下放权力

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值