1.5 Linux下的用户管理

用户及用户组存在的意义

  1. Q:什么是用户?
    A:用户是最底层的安全机制,保护数据不被其他人删改。其他的安全机制都是在此基础上建立的。
    (比如:你仅仅只是手机的拥有者,无法对系统的软件进行操作)

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。

  1. Q:用户组是什么?
    A:组不是一个身份,是有一个容器,装有具有共同权限的用户们。(对用户进行归类和统一授权)

3A机制
身份 account:我是谁
认证authentic:证明我是谁
授权 author:我被允许做什么

用户以及用户组在系统中的存在形式

  1. 用户记录在/etc/passwd文件中
    用户组记录在/etc/group文件中
  2. 默认情况下,普通用户是无法建立用户的
  3. 建立用户要用到3个文件
    passwd 用户属性
    group 用户组属性
    shadow 认证属性

用户切换

  1. 用户查看
  whoami               #当前用户
  id -u username       #查看用户的“身份证”
  id -g username       #查看用户的主组id(初始值id)
  id -G username       #查看用户的附加组id
  id -G -n username    #显示所有附加组的名称

注意:主组是无法选择的,而附加组可以选择。

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

  1. 用户切换
  • 普通用户到超级用户,需要密码
    超级用户到普通用户,不需要密码
    普通用户到普通用户,需要密码

  • -

  su - username      #   切换用户环境

su - westos真实登录,因为环境已经改变。
而su westos 虽然也显示正常登录,但是没有切换到相应用户的环境

  • 每切换一个用户,系统都会打开一个shell
  • 规范操作是最多保持两层用户。

注意:命令的规范写法

在这里插入图片描述

在这里插入图片描述
查看路径

在这里插入图片描述

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

  1. /etc/passwd
    用户身份信息文件
    在这里插入图片描述

  2. /etc/group
    组身份信息文件
    在这里插入图片描述

  3. /etc/skel/.*
    用户环境配置文件模板
    (隐藏的文件是从skel复制到家目录中)

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

  5. /home/username
    用户家目录

用户和用户组建立删除

  1. watch

用户文件监控界面
可以设定时间
watch -n (系统默认 2 秒)
watch -n 1 (设定为1秒)
watch -n 1 “tail -n 3 /etc/passwd /etc/group;ls -l /home”
(“ ;”告诉系统这是2个命令)

  1. useradd 用户建立

(1)useradd username

在这里插入图片描述
在这里插入图片描述
(2)useradd -u id username
建立用户,并指定其uid

id 用户
0 超级用户
1-200 系统预留id
201-999 系统用户
1000-60000 用户级用户

在这里插入图片描述(3)useradd -g gid username
建立用户,并指定主组id
注意:该组id对应的组一定要存在,否则,无法建立。
在这里插入图片描述
错误演示
在这里插入图片描述
(4)useradd -G id username
建立用户,并指定附加组id
在这里插入图片描述
(5)useradd -c word username
建立用户,并指定用户说明
在这里插入图片描述(6)useradd -s shell username
建立用户,并指定用户的shell
nologin:账号不可用,不能操作交互界面,不可登录shell
bash:提供交互界面,可登录shell
在这里插入图片描述(7)useradd -d dir yao
建立用户,并指定用户的家目录
/home/username 建立用户时的默认家目录
在这里插入图片描述(8)useradd -M username
建立用户,并不建立用户的家目录
在这里插入图片描述

  1. userdel 用户删除

(1)userdel -r username
无 -r 时,只删除了用户的身份
用户的家目录,以及邮箱文件依旧存在

在这里插入图片描述
在这里插入图片描述
(2)userdel username
家目录未删除

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

  1. groupadd 组建立

(1)groupadd groupname
建立组
在这里插入图片描述
(2)groupadd -g id groupname
建立组,并指定组id

在这里插入图片描述

在这里插入图片描述
5. groupdel 组删除
groupdel groupname

在这里插入图片描述

用户和用户组的信息管理

  1. usermod 更改用户信息

(1) -l
更改用户名称
在这里插入图片描述
(2) -u
更改用户的uid
在这里插入图片描述(3) -g
更改用户的gid
在这里插入图片描述(4) -G
更改主组附加组身份
注意:更改(不是添加)后,该用户仅仅只有2个组
在这里插入图片描述(5) -aG
添加用户附加组身份
在这里插入图片描述(6)-G “”
清空附加组
在这里插入图片描述(7)-c
更改用户说明

-c “”
清空用户说明

(8)-d
更改用户家目录指向
注意:监控窗口watch下,显示的/home/username仅仅只是passwd下的字符串,这个目录不一定真实存在(表格中的信息不一定真实)

在这里插入图片描述在这里插入图片描述(9)-md
更改家目录指向,并更改家目录名称
(注意保证实验环境纯净

错误演示
在这里插入图片描述
先将更正家目录指向,再重新更改
在这里插入图片描述

(10)-s
更改默认shell

(11)-L
冻结账号
在这里插入图片描述(12)-U
解锁
在这里插入图片描述
2. groupmod 更改组

-g 更改组id
在这里插入图片描述

用户认证信息管理

  1. 查看密码状态
passwd -S username

在这里插入图片描述

  1. 监控用户认证信息的变化情况
watch -n 1 "tail -n 3 /etc/passwd /etc/shadow"

用户名称 : 用户密码的加密字符 : 用户密码最后一次被修改时间 : 密码最短有效期 : 密码最长有效期 : 密码过期前警告期 :
账号非活跃期 : 账号到期时间 : 用户自定义(未使用)

  1. 用户加密字符

(1)超级用户的操作

passwd username

在这里插入图片描述

echo 123456 |  passwd --stdin username

在这里插入图片描述

(2)普通用户的操作

passwd

在这里插入图片描述

(3)冻结认证

passwd -l username   #冻结账号认证

在这里插入图片描述

passwd -u username   #解锁账号认证

在这里插入图片描述

(4)密码删除

passwd -d username

在这里插入图片描述
(5)密码使用天数设定

当修改密码使用天数为0时,用户必须修改密码才能登陆系统

passwd -e username   #修改默认使用时间为0

在这里插入图片描述chage可以指定任意天数,passwd -e 只能改为0

chage -d 30 username  

在这里插入图片描述

(6)密码最短有效期

防止用户频繁更改密码
在设定的最短有效期内,用户无法更改密码

passwd -n 1 username

在这里插入图片描述

chage -m 2 username

在这里插入图片描述

(7)密码最长有效期

88888天内,用户必须修改密码,否则,会被冻结账号

passwd -x 88888 username

在这里插入图片描述

chage -M 30 username

在这里插入图片描述

(8)密码过期警告

账号过期前的警告时间

passwd -w 2 username

在这里插入图片描述

chage -W 7 username

在这里插入图片描述(9)认证非活跃天数

超出了最长有效期时,用户还可以使用账号的天数

passwd -i 2 username

在这里插入图片描述

chage -I 4 username

在这里插入图片描述

chage -I -1 username  #恢复默认,不设置

在这里插入图片描述

(10)账号认证到期时间

chage -E "2021-7-28"

用户权力下放

普通用户无法使用系统管理命令
如果想要普通用户去执行系统管理命令,则需要超级用户的来授权
在这里插入图片描述

  1. 普通用户授权

sudo:执行该命令,普通用户可以使用指定的用户身份运行 命令

visudo   编辑/etc/sudoers,并提供语法检测

先查看该普通用户当前所在的主机名,以及要执行的系统命令程序所在的位置
在这里插入图片描述
编辑/etc/sudoers,注意这种方法可以检测语法错误
在这里插入图片描述按照规范的操作,一般在101行进行编辑

westos用户可以在localhost.localdomain这台主机上,以root的身份去执行useradd和userdel命令
在这里插入图片描述编辑后,调用sudo,普通用户可以调用系统命令
此次执行系统命令,需要输入密码
在这里插入图片描述
再次编辑文件,visudo,设置免密执行
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/109703285
1.5