5、Linux系统中的用户管理

一、 用户及用户组存在的意义

(1)用户存在的意义
系统资源是有限的,如何合理分配系统资源,在这个问题解决时必须要有资源配合:用户的3A机制(3A机制组成系统中最底层的安全架构)

  • Accounting 身份
  • Authorization 授权
  • Authentication 认证

(2)用户组存在意义
用户组是一个逻辑容器,对用户进行归类和统一授权

二、用户及用户组在系统中的存在方式

电脑对数字敏感( id)<----->人类对字符串敏感 (名称)
用户和用户组必须要记录到文件当中才能存在
用户存在方式就是/etc/passwd文件中的一行字符
用户组存在方式就是/etc/group 文件中的一行字符
在这里插入图片描述
在这里插入图片描述

三、用户查看及切换

(1)用户查看

  • whoami ##查看当前用户,显示当前用户的用户名称
    在这里插入图片描述

  • id ##查看用户id信息(用户id ,用户主组id,附加组id)
    在这里插入图片描述

  • id -u ##查看用户的用户id
    在这里插入图片描述

  • id -g ##查看用户的主组id
    在这里插入图片描述

  • id -G ##查看用户所有组的组id(显示主组和附加组id)
    在这里插入图片描述

  • id -n ##显示名称(搭配其他参数一起使用)
    在这里插入图片描述
    (2)用户切换
    su - username ##切换用户环境(如果不加-,只是切换了用户名称,用户本身的环境没有变)
    在这里插入图片描述
    在这里插入图片描述
    注意:
    1、在做用户切换时当使用完毕用户身份后及时退出当前用户(exit),不要在一个shell中反复执行su命令,否则会导致shell运行环境混乱。
    2、超级用户切换到其他用户是不需要密码的,而从普通用户切换到另一个普通用户或者超级用户是需要密码的。

四、用户涉及到的系统配置文件

  • /etc/passwd ##用户身份信息文件
    在这里插入图片描述#用户名称 : 用户密码 : 用户id : 用户主组id : 用户说明 : 用户家目录 : 用户默认shell所在的目录

  • /etc/group ##组身份信息文件
    在这里插入图片描述#组名称 :组密码 :组id :以当前组为附加组的用户组名称

  • /etc/skel/.* ##用户环境配置文件模板

  • /etc/shadow ##用户认证信息文件
    在这里插入图片描述
    #用户名称:用户密码 :最后一次修改密码的时间:密码最小使用期限(为0表示可以 随时更改):密码最大使用期限:密码过期前几天提醒用户的时间:密码到期后还可以使用几天:账户失效时间:预留

  • /home/username ##用户家目录

五、用户和用户组建立及删除

为了方便观察实验,通过命令 watch -n 1 “tail -n 4 /etc/passwd /etc/group ;echo ;ls -l /home” 来监控用户信息

  • useradd username ##普通用户建立(默认用户id和用户组id)
    在这里插入图片描述

  • useradd -u id username ##建立用户时指定用户id
    在这里插入图片描述##uid(用户id)范围:0 - 2*16=0 - 65535
    ##0 表示超级用户
    ##1-200 系统预留id
    ##201-999 系统用户id
    ##1000-60000 用户级用户id
    ##/etc/login.defs 记录用户建立的默认规则

  • useradd -g id username ##建立用户时指定用户的主组id(指定的主组id必须在/etc/group中存在)
    在这里插入图片描述

  • useradd -G id/组名称 username ##建立用户时指定附加组id(指定的附加组id必须在/etc/group中存在,可以添加多个,之间用,隔开)
    在这里插入图片描述

  • useradd -d 路径 username ##建立用户时指定用户家目录
    在这里插入图片描述

  • useradd -M username ##建立用户时不建立家目录
    在这里插入图片描述

  • useradd -c 用户说明 username ##建立用户时指定用户说明
    在这里插入图片描述

  • useradd -s 路径 username ##建立用户时指定用户shell
    在这里插入图片描述

  • userdel -r username ##用户删除(-r表示删除用户的系统配置文件,否则家目录下还会残留用户文件)
    在这里插入图片描述
    在这里插入图片描述

  • groupadd groupname ##用户组建立

  • groupadd -g id groupname ##建立用户组时指定组id
    在这里插入图片描述

  • groupdel groupname ##删除组
    在这里插入图片描述

6.用户和用户组的信息管理

  • usermod
    -l #更改用户名称
    -u #更改用户id
    -g #更改主组id
    -G #更改用户附加组id(更改原附加组为新的附加组)
    -aG #添加用户附加组id(在原附加组基础上添加新的附加组)
    -c #更改用户说明
    -d #更改用户家目录指向(只是修改用户家目录的获取途径,不会修改用户家目录的名称)
    -md #更改家目录指向同时更改家目录名称
    -s #更改用户的默认shell
    -L #冻结账号
    -U #解锁账号
  • groupmod -g ##更改用户组id

7.用户认证信息管理

(1)查看用户密码状态

  • passwd -S username ##查看用户密码状态

(2)更改密码

  • passwd username ##更改用户的密码(普通用户只能采用交互式修改密码)
  • echo 密码 | passwd --stdin username(非交互式修改密码,只有root可以执行本命令来修改用户密码)
    注意:
    超级用户可以直接修改普通用户的密码,而且修改的密码没有字符的限制,普通用户在修改密码时,需要输入旧密码进行验证,而且修改的密码有字符的要求(8位以上无序数字+无序字母组合)

(3)账号的冻结与解锁

  • passwd -l username ##冻结账号认证
  • passwd -u lee ##解锁账号认证(passwd -l 冻结的是密码,所以可以通过修改账号密码来达到解锁的目的)
  • usermod -L username ##冻结账号认证
  • usermod -U username ##解锁账号认证(usermod -L 冻结的是账号)

(4)密码删除

  • passwd -d username #删除用户密码

(5)修改最后一次修改密码的时间

  • passwd -e lee ##修改默认使用时间为0(从1970-1-1算其到今天的时间)
  • chage -d 0 lee ##意思是账号必须改密码才能登陆系统(可以修改到任意时间)

(6)密码最短有效期

  • passwd -n 天数 username ##修改用户密码最少使用期限(指定用户在指定天数内不能改密码)
  • chage -m 1 lee ##修改用户密码最少使用期限(指定用户在指定天数内不能改密码)

(7)密码最长有效期

  • passwd -x 天数 username ##修改密码最常使用期限(指定天数内指定用户必须更新密码否则会被冻结)
  • chage -M 天数 username ##修改密码最常使用期限(指定天数内指定用户必须更新密码否则会被冻结)

(8)密码过期警告

  • passwd -w 天数 username ##修改账号过期前警告时间
  • chage -W 天数 username ##修改账号过期前警告时间

(9)认证非活跃天数

  • passwd -i 天数 username ##修改账号密码过期最大时间超过后还能用多久
  • chage -I 天数 username ##修改账号密码过期最大时间超过后还能用多久

(10)账号认证到期时间

  • chage -E “2020-05-11” ##到2020-5-11这天账号会被冻结

(11)未启用功能

8.用户权力下放给普通用户

在系统中普通用户无法执行的系统管理命令,如果需要普通用户执行系统管理动作那么需要root用户来进行授权
(1)普通用户授权方式 “sudo”
(2)作用:
可以使普通用户使用指定的用户身份运行命令
(3)授权方法:
visudo ##此命令作用是编辑/etc/sudoers并提供语法检测(由于代码的规范性,在文件的100行左右进行编辑)
username hostname=(newusername) [NOPASSWD:] /command, /command1
#lee用户 在linux.wesots.com主机=(用超级用户身份) 执行useradd命令
lee linux.westos.com=(root) /usr/sbin/useradd
#westos用户 在linux.wesots.com 使用超户 免密 执行useradd 和 userdel
westos linux.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/
sbin/userdel
测试:
su - lee
sudo useradd westostest ##在lee第一次使用sudo命令时需要输入lee密码
exit #退出lee
su - westos
sudo userdel -r westostest ##westos可以免密执行userdel 命令

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值