当前位置: 首页 > news >正文

Linux系统-用户账号文件

文章目录

文件一(passwd)

文件二(shadow)

加密密码部分

举例理解

文件三(gshadow)

文件四(group)

文件五(skel)

文件六(login.defs)


认识并熟悉用户账号文件对于用户管理以及用户组的管理会有更深刻的感悟

文件一(passwd)

[root@localhost jian]# ll /etc/passwd

用户账号文件

[root@localhost jian]# vim /etc/passwd

(上图所示界面可下拉翻阅)

图中展示的字段效果:“颜色对比鲜明,内容清晰明了”

文件每一行的特点:冒号分隔7个字段

1.用户名称

2.密码占位符   x

3.用户的数字编号UID

4.用户所在基本组的数字编号GID

5.用户的描述或用户昵称

6.用户的家目录

7.用户的默认shell

文件二(shadow)

[root@localhost jian]# ll /etc/shadow

存储用户密码信息的文件目录

[root@localhost jian]# vim /etc/shadow

(上图所示界面可下拉翻阅)

使用:分开的三个字段

1.用户登录名称

2.加密密码

3.最后一次修改密码的时间

理解:从1970年1月1日到最近一次修改密码的日期所经过的天数

4.密码的最短有效期  0 表示密码一直有效

5.密码的最大有效期(最晚什么时候要求改密码)99999

6.密码警告期限  离最晚要求改密码日期的时间(天数)7  99999-7 警告让用户更改密码,用户也可以忽略

7.账号有效期    最晚密码修改时间之后多少天   

例如:到99999时密码就不能使用,登录就强制要求改密码99999+days

要求改密码才能使用,所以现在表示经历days后账号将会被禁用

8.账号的过期时间  具体的日期(天数),到期即账号过期

9.保留字段(留作将来使用)

加密密码部分

使用$字符分开的三个字段

1.加密算法   6   SHA512  

2.盐    salt    瀑布效应

3.加密后的值   密文

举例理解

为什么加盐进行加密

明文+加密算法=密文

假设张三和李四使用的明文密码相同,加密算法也相同,那么他们得到的密文也是相同的;逆推,张三和李四的密文相同,加密算法也相同,那么他们使用的明文密码也是相同的。

防止明文密码被破译,所以在做加密算法的时候应该加入盐使得密文不同

哈希算法(摘要算法)“不能逆推”

文件三(gshadow)

[root@localhost jian]# ll /etc/gshadow

存储用户组密码信息的文件目录

[root@localhost jian]# vim /etc/gshadow

(上图所示界面可下拉翻阅)

冒号分割成4个字段

1.用户组名

2.用户组密码(加密后)

3.组管理员

4.组成员

补充:

newgrp GROUPNAME  该命令切换基本组

gpasswd GROUPNAME 给组设置密码

文件四(group)

[root@localhost jian]# ll /etc/group

存放用户组的所有信息的文件

[root@localhost jian]# vim /etc/group

(上图所示界面可下拉翻阅)

以冒号分隔为4个字段

1.组名

2.组密码占位符

3.组id(GID)

4.属于该用户的附属组/附加组

[root@localhost jian]# id duo

文件五(skel)

[root@localhost jian]# ll /etc/skel

存放用户默认配置文件和默认环境的模板文件

[root@localhost skel]# ls -la

目录里有四个文件/目录,另外两个用户也有相同的文件/目录 (如下

[root@localhost skel]# ll -a /home/hua/

[root@localhost skel]# ll -a /home/duo/

所以,在该目录中的文件会在创建用户时复制到创建用户的家目录里面

文件六(login.defs)

[root@localhost jian]# ll /etc/login.defs

设置用户帐号限制的文件

[root@localhost skel]# vim /etc/login.defs

(上图所示界面可下拉翻阅)

此文件从上往下看,如果前面有#,那么后面整行的内容都将显示为蓝色(注释)

图中黄色和红色的部分用户的邮箱以用户名命名(定义用户邮箱所在地)

图中黄色和红色的部分权限掩码,创建一个用户默认的权限掩码是022 

图中白色的部分用户家目录的权限

图中黄色和红色的部分:

1.密码可以使用多久(密码最长期限)

2.最短的密码有效期(密码最短期限)

3.密码过期之前几天进行警告(密码警告期限)

图中黄色和红色的部分:

普通用户的UID范围和系统账号的UID范围

普通账号除root账号以外所有能够登录系统进行操作的账号

系统账号除root和登录操作系统的普通账号之外的其他不能登录操作系统的,仅供系统服务调用资源所使用的账号

图中黄色和红色的部分:

普通用户的GID范围和系统账号的GID范围

图中黄色和绿色的部分:

用户密码的加密算法

图中黄色和红色的部分:

在移除某一个用户时,如果组里面没有其他成员,是否移除

yes 若组内没有其他成员则删除,否则不删除    

图中黄色和红色的部分:

yes 创建用户时是否创建用户的家目录

相关文章:

Linux系统-用户账号文件

文章目录 文件一(passwd) 文件二(shadow) 加密密码部分 举例理解 文件三(gshadow) 文件四(group) 文件五(skel) 文件六(login.defs&#…...

docker配置国内镜像加速

docker配置国内镜像加速 由于国内使用docker拉取镜像时,会经常出现连接超时的网络问题,所以配置Docker 加速来使用国内 的镜像加速服务,以提高拉取 Docker 镜像的速度。 1、备份docker配置文件 cp /etc/docker/daemon.json /etc/docker/da…...

C语言实现排序之堆排序算法

一、堆排序算法 基本思想 堆排序是一种比较有效的排序方法,其基本思想是: 构建最大堆:首先将待排序的数组构建成一个最大堆,即对于每个非叶子节点,它的值都大于或等于其子节点的值。排序:然后将堆顶元素…...

【STM32 Blue Pill编程】-外部中断配置及使用

外部中断配置及使用 文章目录 外部中断配置及使用1、中断介绍2、STM32中的中断3、硬件准备及接线4、GPIO配置5、代码实现在本文中,我们将介绍如何使用 STM32Cube IDE 中的 HAL 库配置和处理外部中断。 我们将通过一个带有按钮和 LED 的示例来演示这一点。 读完本文后,您将能够…...

MySQL 安装与配置教程:单机、主从复制与集群模式

目录 MySQL 简介MySQL 安装MySQL 基础配置MySQL 主从复制配置MySQL 集群配置总结 1. MySQL 简介 MySQL 是一个广泛使用的关系型数据库管理系统,具有高性能、高可靠性和易用性等特点。它支持多种部署模式,包括单机模式、主从复制模式(用于高…...

JavaEE 的相关知识点(一)

一、过滤器 过滤器(Filter)是一个用于对请求和响应进行预处理的组件。过滤器可以在 Java Servlet 规范中使用,通常用于执行一些通用的任务 1、过滤器的作用 过滤器是一种javaEE规范中定义的一种技术,可以让请求达到目标servlet之…...

使用Python实现深度学习模型:智能医疗影像识别与诊断

介绍 智能医疗影像识别与诊断是现代医疗技术的重要应用,通过深度学习模型,可以自动分析和识别医疗影像,提高诊断的准确性和效率。本文将介绍如何使用Python和深度学习技术来实现智能医疗影像识别与诊断。 环境准备 首先,我们需要安装一些必要的Python库: pip install …...

24.给定一个链表,实现一个算法交换每两个相邻节点并返回其头部。要求不能修改列表节点中的值,只能更改节点本身。

24. Swap Nodes in Pairs 题目 给定一个链表,交换每两个相邻节点并返回其头部。要求不能修改列表节点中的值,只能更改节点本身。 Example: Given 1->2->3->4, you should return the list as 2->1->4->3....

Python 通过UDP传输超过64k的信息

Python 通过UDP传输超过64k的信息 在网络编程中,UDP(用户数据报协议)是一种常用的传输协议。与TCP不同,UDP是无连接的,并且不保证数据包的顺序、完整性及交付。尽管如此,UDP因其较低的延迟和开销而被广泛应…...

微服务设计原则——高性能:批量

能批量就不要并发。 如果调用方需要调用我们接口多次才能进行一个完整的操作,那么这个接口设计就可能有问题。 比如获取数据的接口,如果仅仅提供getData(int id)接口,那么使用方如果要一次性获取 20 个数据,它就需要循环遍历调用…...

C:指针学习-指针变量—学习笔记

今日伊雷娜: 目录 前言: 1、字符指针变量 1.1 使用字符指针存放字符 1.2 使用字符指针变量存放字符串 2、数组指针变量 2.1 什么是数组指针变量? 2.2 数组指针变量初始化 2.3 关于数组指针类型的解析 3、函数指针变量 3.1 函数地址 …...

【MySQL 07】表的增删查改 (带思维导图)

文章目录 🌈 一、insert 添加数据⭐ 1. 单行数据 全列插入⭐ 2. 多行数据 指定列插入⭐ 3. 插入否则更新⭐4. 插入否则替换 🌈 二、select 查询数据⭐ 1. select 列🌙 1.1 全列查询🌙 1.2 指定列查询🌙 1.3 查询字段…...

快速上手Git

Git相关概念 Git是一个开源的分布式版本控制系统,由Linus Torvalds在2005年创建,用于有效、高速地处理从小到大的项目版本管理。它是由 Linux 之父 Linus Torvalds 开发的,并已经成为了现代软件开发领域中最流行的版本控制系统之一。 git的工…...

RTC时钟测试

1. 基础知识 Linux 的系统时间有时跟硬件时间是不同步的。 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIO…...

大数据技术——实战项目:广告数仓(第六部分)报表数据导出至clickhouse

目录 第11章 报表数据导出 11.1 Clickhouse安装 11.2 Clickhouse建表 11.2.1 创建database 11.2.2 创建table 11.3 Hive数据导出至Clickhouse 第11章 报表数据导出 由于本项目最终要出的报表,要求具备交互功能,以及进行自助分析的能力,…...

Android studio模拟制作-简易的订餐交易小案例

一、最终呈现效果 订餐支付小案例效果 二、布局设计activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…...

消防隐患在线小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;消防隐患举报管理&#xff0c;消防隐患分类管理&#xff0c;统计分类管理&#xff0c;处理结果管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;我…...

【Vue3】路由Params传参

【Vue3】路由Params传参 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日…...

授权cleanmymac访问全部磁盘 Mac授权访问权限 cleanmymac缺少权限

CleanMyMac是Mac系统下的一款专业的苹果电脑清理软件&#xff0c;同时也是一款优秀的电脑系统管理软件。它能有效清理系统垃圾&#xff0c;快速释放磁盘内存&#xff0c;缓解卡顿现象&#xff0c;保障系统顺畅地运行。 全磁盘访问权限&#xff0c;就好比机场内进行的安全检查。…...

Ubuntu/18.04 LTS下编译 BoringSSL 库

1、准备一个 Ubuntu/18.04 LTS 系统的设备 2、安装软件 GIT、GCC、CMAKE、G、Golang:1.16 及以上版本 3、克隆仓库源 git clone https://boringssl.googlesource.com/boringssl cd boringssl 4、使用特定版本 git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd 5、编…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...