Linux 用户和组

news2024/11/15 13:36:26
  • 理解Linux 用户和组的概念
  • 掌握passwd 文件的组成以及作用
  • 掌握shadow 文件的组成以及作用
  • 了解group 文件的内容

1.用户分类:

  • 超级管理员(root)
  • 普通用户
  • 程序用户

1.用户信息文件

/etc/passwd 文件中存储了所有用户信息。

1.passwd 格式

该文件每一行是一个用户信息,并且以: 为分隔符,一共7 段内容。

root:x:0:0:root:/root:/bin/bash
[--] - - - [--] [---] [--------]
 |   | | |   |    |        |
 |   | | |   |    |        +-> 7. Login shell
 |   | | |   |     +---------> 6. Home directory
 |   | | |   +---------------> 5. GECOS
 |   | | +-------------------> 4. GID
 |   | +---------------------> 3. UID
 |   +-----------------------> 2. Password
 +---------------------------> 1. Username

/etc/passwd文件中,排位代表:
[用户名]、[口令]、[uid]、[组id]、[备注]、[家目录]、[登录shell]

字段序号

示例

解释

说明

1

root

用户名

2

x

密码占位符

用户的密码
x代表有密码
无内容,用户登录系统无需密码

3

0

UID

当前用户的身份标识
0 就是超级管理员

4

0

GID

当前用户的基本组ID

5

root

用户的身份信息
大名

现已废弃

6

/root

用户家目录

超管:/root
普通用户:/home/用户名

7

/bin/bash

用户登录系统后
(默认)命令解释器

/sbin/nologin 不允许登录系统  
/bin/sh

[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]#

2.用户分类

用户分类

UID

普通用户

> 1000

程序用户

1 - 1000

超级管理员用户

0

1.用户密码文件

/etc/shadow 记录了系统中用户的密码信息。

2.shadow 格式

该文件每一行记录一个用户的密码信息,并且以: 作为分隔符,一共9 段内容。
可以尝试修改root 密码。

root:$6$.IOzaCZc$f.u0fVe5QZb0mhm6UZvjcfa.un7vRXw8frfyoURLrOHmo7JsTI40a/iaQuHm/uCFqRuljfAyBCJDvOk7ZsCEM.:18765:0:99999:7:::

passwd root

root:$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/:18766:0:99999:7:::

字段序号

示例

含义

说明

1

root

用户名

2

$6$T07ge8

密码密文

sha-512 HASH 散列算法
salt 值  
加密后的密文

3

18766

密码修改时间

距离1970 年1 月1 日
密码最近一次的修改时间(天)

4

0

密码最短有效期

在最短有效期之内不能修改密码
3:三天之内不可以修改自己的密码
root 用户不受此限制

5

99999

密码最长有效期

密码可以使用多长时间
建议设置成90

6

7

密码过期时间

密码过期前7 天会有警告提示

7

密码的不活跃期

过了密码有效期没有修改密码,
处于不活跃期,仍然可以登录系统。

8

账户失效时间

密码距离1970 年1 月1 日的失效时间(天)

9

未分配功能


|             正常登录系统            |          仍然可以登录系统    |
0  用户不能修改密码  3 用户可以修改密码 83  提示修改密码 90   登录     |   密码锁定
|-------------------|----------------|----------------|------------|-------------->
^                   ^                ^                ^            ^
密码修改时间    密码最短有效期     密码过期时间     密码最长有效期  密码不活跃期

在/etc/shadow文件中,排位代表:
[用户名]、[密码口令]、[上次更改密码时间]、[最小修改密码时间间隙]、[密码有效期]、[密码需要变更前的警告天数]、[密码有效期]、[密码过期后的宽限天数]、[账户失效时间]、[保留]

3.shadow 爆破

1.密码密文:

$6$T07ge8Py$.tZXOZIOpWq2sGZKEkKn2KMahL.mcyNrQrd3C3PIqNt8kA0p/K3JtG4Dwn4vyU2kSvyEg1K2xArTs61AG1Qo1/

$id$salt$encrypted

$加密方式$盐值(随机的)$密码密文

2.密码密文加密方式:

man crypt

密码学: 
(安全性取决于密钥,算法公开的)

密文  = 密码算法 (明文,盐值)

- 密码算法
	对称加密(加密密钥与解密密钥一样)
	非对称加密(加密密钥与解密密钥不一样)
	Hash 算法
		陷门算法
		单项运算
- 密码体制
	明文
	加密算法
	加密密钥
	解密算法
	解密密钥
	密文

解密算法

import crypt
crypt.crypt("123456","$6$T07ge8Py$")
循环算法

3.shadow 文件爆破原理:穷举与枚举

[root@localhost ~]# python
Python 2.7.5 (default, Apr 11 2018, 07:36:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("123.com","$6$T07ge8Py")
               //密码    //加上盐值与加密算法(加盐值防碰撞)
'$6$T07ge8Py$3/./MkHtBbziE5UiB/PvR0vkcwtvCoV0G2uYuFfIpbDleXrPJ0BPPNkFZfOY1iTsap.pdxaMrkyXJ/jQ5nxiH0'
>>> crypt.crypt("123456","$6$T07ge8Py")
'$6$T07ge8Py$JFrusYYpGVwWWiqt99Zjs1SJ6h0k.68kigzB5RIswP64SvGeGTY5MlpSwuThUw3dPKcUT214xnReGwPvlbjU41'
>>>

4.组信息文件

/etc/group 保存了组信息。

5.group 格式

该文件的每一行记录了每一个组的信息,并且以: 作为分隔符,一共4 段内容。

caliy:x:1000:caliy

字段数

示例

含义

说明

1

caliy

组名

用户组的名称,由字母或数字构成。

2

x

密码

x 是密码标识,组密码默认保存在 /etc/gshadow 文件中。

3

1000

GID

Group ID

4

caliy

群组用户

6.组与用户

先有组,再有用户

  • 用户必须有且只有一个基本组
  • 当创建一个用户时,如果没有指定基本组,会先创建一个与该用户同名的组,再创建用户。

     

一个用户可以有多个附加组。
基本组内没有任何用户,才能被删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1612602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年大学三下乡社会实践活动投稿——你想知道的都在这里

2024年的夏天,我作为一名大学生,满怀激情地参加了三下乡社会实践活动。在这段难忘的经历中,我深刻体验到了农村生活的艰辛与美好,也收获了许多宝贵的经验和感悟。为了将这段经历传递给更多的人,我决定向媒体投稿,发表一篇关于三下乡社会实践活动的通讯稿件。 起初,我选择了传统…

【多线程】CAS的应用 | CAS的概念 | 实现原子类 | 实现自旋锁

文章目录 一、CAS1.什么是CAS2.实现原子类3.实现自旋锁 一、CAS 1.什么是CAS Compare and swap 比较并交换。 比较交换的是 内存 和 寄存器 比如此时有一个内存 : M。 还有两个寄存器A,B ​ CAS ( M , A , B ) :如果M和A的值相同的话,就把M和B的值进行交换(交换的…

UI设计/交互设计/视觉设计项目汇报/作品集Figma/PPT模板

作为UI设计/交互设计/视觉设计师,创建作品集对于向潜在客户或雇主展示您的技能、创造力和风格至关重要。以下分步指南可帮助您创建令人印象深刻的作品集: 选择您的最佳作品:选择您最强大且最相关的设计项目,将其纳入您的作品集。…

Pytorch入门实战: 06-VGG-16算法-Pytorch实现人脸识别

第P6周:VGG-16算法-Pytorch实现人脸识别 🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊 🏡 我的环境: 语言环境:Python3.8 编译器:Jupyter La…

微信小程序vue.js+uniapp服装商城销售管理系统nodejs-java

本技术是java平台的开源应用框架,其目的是简化Sping的初始搭建和开发过程。默认配置了很多框架的使用方式,自动加载Jar包,为了让用户尽可能快的跑起来spring应用程序。 SpinrgBoot的主要优点有: 1、为所有spring开发提供了一个更快…

python3--lxml pytoml.core.TomlError expected_equals报错解决

文章目录 一、问题二. 解决方法:三. 参考:四. 总结 一、问题 在ubuntu的armbian上的python3中安装lxml时报错了 安装命令是 pip3 install lxml报错简略信息如下图 File "/usr/share/python-wheels/pytoml-0.1.2-py2.py3-none-any.whl/pytoml/par…

iptables命令简介

正文共:3456 字 22 图,预估阅读时间:3 分钟 iptables/ip6tables命令,用于在Linux内核中设置、维护和检查IPv4和IPv6数据包过滤规则的表,从而实现IPv4/IPv6数据包过滤和NAT的管理工具。它可以定义多个不同的表&#xff…

CH341A/B USB转USART/I2C/SPI介绍

CH341A/B USB转USART/I2C/SPI介绍 📍CH341官方文档:https://www.wch.cn/downloads/CH341DS2_PDF.html CH341A/B是一个USB总线的转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。 🍁芯片封装&a…

基于Springboot的社区疫情返乡管控系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的社区疫情返乡管控系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

uni-app为图片添加自定义水印(升级版)

前置内容 uni-app为图片添加自定义水印&#xff08;解决生成图片不全问题&#xff09; UI 升级 现在水印样式变成这样了&#xff1a; 代码 <template><canvas v-if"waterMarkParams.display" canvas-id"waterMarkCanvas" :style"canv…

【001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂】

001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂 文章目录 001_IoT/物联网通信协议基础: HTTP、Websocket、MQTT、AMQP、COAP、LWM2M一文搞懂创作背景通信模型ISO/OSI七层模型 和 TCP/IP四层模型网络通信数据包格式&#xff08;Ethernet II&…

Swift-20-基础数据类型

数据定义 语法规则 先来看下下面的代码 import Cocoavar num1 "four" //a var num2: String "four" //b var num3 4 //c var num4: Int 4 //d上面的几行代码都能正常运行&#xff0c;其中a和b行等价&#xff0c;c和d行等价。区另就在于是否声…

docker-compose 安装MongoDB续:创建用户及赋权

文章目录 1. 问题描述2. 分析2.1 admin2.2 config2.3 local 3. 如何连接3.解决 1. 问题描述 在这一篇使用docker-compose创建MongoDB环境的笔记里&#xff0c;我们创建了数据库&#xff0c;但是似乎没有办法使用如Robo 3T这样的工具去连接数据库。连接的时候会返回这样的错误&…

关系抽取与属性补全

文章目录 实体关系抽取的任务定义机器学习框架属性补全 实体关系抽取的任务定义 从文本中抽取出两个或者多个实体之间的语义关系&#xff1b;从文本获取知识图谱三元组的主要技术手段&#xff0c;通常被用于知识图谱的补全。美丽的西湖坐落于浙江省的省会城市杭州的西南面。&am…

IDEA中SVN 的使用

文章目录 前言一、svn安装二、IDEA集成SVN总结 前言 svn可以老牌的代码仓库了 说实话svn还是和git无法相比的,毕竟git有本地仓库的概念,可以很好的处理冲突,然而svn是没有本地仓库的概念的,所以只能拉取别人的代码,然后处理冲突后,才能提交代码; 由于最近的工作换成了用svn仓…

el-menu 有一级二级三级菜单

效果如下 菜单代码如下 <el-menu:default-active"menuDefaultActive"class"el-menu-box":text-color"menuTextColor":active-text-color"menuActiveTextColor":unique-opened"true"><!-- 一级菜单 --><tem…

线程池的核心参数有哪些???

线程池的核心参数包括以下七个&#xff1a; corePoolSize&#xff1a; 这是线程池中的核心线程数&#xff0c;即池中会保留的最少线程数。当提交任务时&#xff0c;如果当前线程数小于核心线程数&#xff0c;线程池会创建新的线程来执行任务。如果当前线程数等于或大于核心线程…

Docker - 简介

原文地址&#xff0c;使用效果更佳&#xff01; Docker - 简介 | CoderMast编程桅杆https://www.codermast.com/dev-tools/docker/docker-introduce.html Docker是什么&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 D…

css-Echarts图表初始显示异常非完全显示

1.echarts图表初始加载异常 2.问题原因 初次加载时&#xff0c;由于外层使用%比 echarts dom元素没有完全加载完成&#xff0c;canvas绘画继承本身宽高&#xff0c;造成Echarts图表初始显示异常非完全显示。 3.使用echarts图表可参考以下代码&#xff08;实现一定的自适应&am…

stm32开发之threadx+emwin+awizard使用记录

前言 图形化开发界面选择(awizard)emwin使用的版本是6.10芯片采用的是stm32f407zgt6这里使用的开发板是普中麒麟f4系列的 lcd驱动文件&#xff08;基于提供的源码修改&#xff09; 1、这里是剔除了很多兼容其他显示屏部分的代码&#xff0c;只保留具体信号的代码,把一些全局…