Linux学习[21]账号与群组1---linux中/etc/passwd与/etc/shadow字段说明

文章目录

  • 前言
  • 1. passwd字段说明
  • 2. shadow字段说明
  • 总结

前言

修改树莓派某个用户的权限到管理员权限的时候,涉及到了对/etc/passwd文件的修改,其中的字段具体含义当时也是模棱两可的,最近看了看相关书籍之后,这里做一个说明。
同时因为相关的内容是账号相关,所以也补充一些linux中的账号相关的内容。
涉及到的树莓派相关博客


1. passwd字段说明

输入指令cat /etc/passwd即可查看文件内容

在这里插入图片描述每个linux系统都passwd文件的第一行都是root管理员这一行,这一行有七个字段,它们用:进行分隔。
这7个字段的含义对应如下表所示:

账号名称密码UIDGID使用者信息说明栏主文件夹Shell
rootx00root/root/bin/bash

帐号名称:
linux其实是根据UID进行识别的,但是UID不便于用户记忆,所以需要有账号名称,需要用来对应 UID 。例如 root 的 UID 对应就是 0 (第三字段);

密码:
早期 Unix 系统的密码就是放在这字段,但是因为这个文件的特性是所有的程序都能够读取,这样一来很容易造成密码数据被窃取, 因此后来就将这个字段的密码数据给他改放到 /etc/shadow 中了。所以这里你会看到一个“ x ”。

UID:
这个就是使用者识别码,通常 Linux 对于 UID 有几个限制:

id 范围该 ID 使用者特性
0(系统管理员) 当 UID 是 0 时,代表这个帐号是“系统管理员”! 所以当你要让其他的帐号名称也具有 root 的权限时,将该帐号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root 喔! 不过,很不建议有多个帐号的 UID 是 0 啦~容易让系统管理员混乱!
1~999(系统帐号) 保留给系统使用的 ID,其实除了 0 之外,其他的 UID 权限与特性并没有不一样。默认 1000 以下的数字让给系统作为保留帐号只是一个习惯。

由于系统上面启动的网络服务或背景服务希望使用较小的权限去运行,因此不希望使用 root 的身份去执行这些服务, 所以我们就得要提供这些运行中程序的拥有者帐号才行。这些系统帐号通常是不可登陆的, 所以才会有我们在第十章提到的 /sbin/nologin 这个特殊的 shell 存在。

根据系统帐号的由来,通常这类帐号又约略被区分为两种:

id 范围该 ID 使用者特性
1~200由 distributions 自行创建的系统帐号;
201~999若使用者有系统帐号需求时,可以使用的帐号 UID。
1000~60000(可登陆帐号) 给一般使用者用的。事实上,目前的 linux 核心 (3.10.x 版)已经可以支持到 4294967295 (2^32-1) 这么大的 UID 号码

UID 为 0 的时候,就是 root ,所以请特别留意一下你的 /etc/passwd

GID:
这个与 /etc/group 有关。其实 /etc/group 的观念与 /etc/passwd 差不多,只是他是用来规范群组名称与 GID 的对应而已。

使用者信息说明栏:
这个字段基本上并没有什么重要用途,只是用来解释这个帐号的意义而已。

主文件夹:
这是使用者的主文件夹,以上面为例, root 的主文件夹在 /root ,所以当 root 登陆之后,就会立刻跑到 /root 目录里头。如果你有个帐号的使用空间特别的大,你想要将该帐号的主文件夹移动到其他的硬盘去该怎么做? 可以在这个字段进行修改。默认的使用者主文件夹在 /home/yourIDname

Shell:
我们在第十章 BASH 提到很多次,当使用者登陆系统后就会取得一个 Shell 来与系统的核心沟通以进行使用者的操作任务。那为何默认 shell 会使用 bash 呢?就是在这个字段指定的。 这里比较需要注意的是,有一个 shell 可以用来替代成让帐号无法取得 shell 环境的登陆动作,那就是 /sbin/nologin 这个东西,这也可以用来制作纯 pop 邮件帐号者的数据。


2. shadow字段说明

passwd中关于账户的密码显示是x,因为它们的密码都被放到shadow文件内,并通过部分了加密。
通过sudo cat /etc/shadow可以看到文件内容。一共是九个字段,用:分隔开。
在这里插入图片描述

下面对各字段进行解释

账号名称账号密码最近更动密码的日期密码不可被更改日期密码需要重新变更的天数密码需要变更期限前的警告天数密码过期后的帐号宽限时间(密码失效日帐号失效日期保留
root!195410999997

帐号名称:
由于密码也需要与帐号对应,这个文件的第一栏就是帐号,必须要与 /etc/passwd 相同才行。

密码:
这个字段内的数据才是真正的密码,而且是经过编码的密码(加密) 。你只会看到有一些特殊符号的字母就是了,需要特别留意的是,虽然这些加密过的密码很难被解出来, 但是“很难”不等于“不会”,所以,这个文件的默认权限是“-rw-------”或者是“----------”,亦即只有 root 才可以读写就是了。

另外,由于各种密码编码的技术不一样,因此不同的编码系统会造成这个字段的长度不相同。 举例来说,旧式的 DES, MD5 编码系统产生的密码长度就与目前惯用的 SHA 不同[2]!SHA 的密码长度明显的比较长些。由于固定的编码系统产生的密码长度必须一致,因此“当你让这个字段的长度改变后,该密码就会失效(算不出来)”。 很多软件通过这个功能,在此字段前加上 ! 或 * 改变密码字段长度,就会让密码“暂时失效”了。

最近更动密码的日期:
这个字段记录了“更动密码那一天”的日期,计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 而累加的日期,1971 年 1 月 1 日则为 366 , 19541 指的就是 2023的某一天。这个可以自己算一下。

密码不可被更动的天数:(与第 3 字段相比)
第四个字段记录了:这个帐号的密码在最近一次被更改后需要经过几天才可以再被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设置为 20 天的话,那么当你设置了密码之后, 20 天之内都无法改变这个密码。

密码需要重新变更的天数:(与第 3 字段相比)
经常变更密码是个好习惯!为了强制要求使用者变更密码,这个字段可以指定在最近一次更改密码后, 在多少天数内需要再次的变更密码才行。你必须要在这个天数内重新设置你的密码,否则这个帐号的密码将会“变为过期特性”。 而如果像上面的 99999 (计算为 273 年) 的话,那就表示,呵呵,密码的变更没有强制性之意。

密码需要变更期限前的警告天数:(与第 5 字段相比)
当帐号的密码有效期限快要到的时候 (第 5 字段),系统会依据这个字段的设置,发出“警告”言论给这个帐号,提醒他“再过 n 天你的密码就要过期了,请尽快重新设置你的密码”,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。

密码过期后的帐号宽限时间(密码失效日):(与第 5 字段相比)
密码有效日期为“更新日期(第3字段)”+“重新变更日期(第5字段)”,过了该期限后使用者依旧没有更新密码,那该密码就算过期了。 虽然密码过期但是该帐号还是可以用来进行其他工作的,包括登陆系统取得 bash 。不过如果密码过期了, 那当你登陆系统时,系统会强制要求你必须要重新设置密码才能登陆继续使用,这就是密码过期特性。

那这个字段的功能是什么呢?是在密码过期几天后,如果使用者还是没有登陆更改密码,那么这个帐号的密码将会“失效”, 亦即该帐号再也无法使用该密码登陆了。要注意密码过期与密码失效并不相同。

帐号失效日期:
这个日期跟第三个字段一样,都是使用 1970 年以来的总日数设置。这个字段表示: 这个帐号在此字段规定的日期之后,将无法再使用。 就是所谓的“帐号失效”,此时不论你的密码是否有过期,这个“帐号”都不能再被使用! 这个字段会被使用通常应该是在“收费服务”的系统中,你可以规定一个日期让该帐号不能再使用啦!

保留:
最后一个字段是保留的,看以后有没有新功能加入。


总结

这篇博客主要是对树莓派相关配置中的一些问题包含的原理进行记录与阐述。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零基础Linux_10(进程)进程终止(main函数的返回值)+进程等待

目录 1. 进程终止 1.1 main函数的返回值 1.2 进程退出码和错误码 1.3 进程终止的常见方法 2. 进程等待 2.1 进程等待的原因 2.2 wait 函数 2.3 waitpid 函数 2.4 int* status参数 2.5 int options非阻塞等待 本篇完。 1. 进程终止 进程终止指的就是程序执行结束了&…

基于树莓派CM4制作img系统镜像批量制作TF卡

文章目录 前言1. 环境与工具2. 制作镜像3. 烧录镜像4. 总结 前言 树莓派烧录完系统做定制化配置比较费时间。在面对大批量的树莓派要配置,那时间成本是非常巨大的。第一次配置完可以说是摸着石头过河,但是会弄了以后再配置,都是一些重复性操…

MYSQL8解压版 windows 主从部署步骤及配置(包含配置文件,教程文件,免积分下载)

MYSQL8解压版 windows 主从部署步骤及配置 一.安装MSYQL 这里只讲大概,详细步骤、my.ini文件、安装包等会在页尾文件中(正常情况按首个mysql安装,只是名字有区别) 1.主库my.ini配置 [mysqld] #典型的值是5-6GB(8GB内存),8-11GB(16GB内存), 20-25GB(32GB内存)&…

【CVPR 2023】DSVT: Dynamic Sparse Voxel Transformer with Rotated Sets

文章目录 开场白效果意图 重点VoxelNet: End-to-End Learning for Point Cloud Based 3D Object DetectionX-Axis DSVT LayerY-Axis DSVT Layer Dynamic Sparse Window AttentionDynamic set partitionRotated set attention for intra-window feature propagation.Hybrid wind…

Leetcode242. 有效的字母异位词

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 解题思路&#…

(二) gitblit用户使用教程

(一)gitblit安装教程 (二) gitblit用户使用教程 (三) gitblit管理员手册 目录 网页访问git客户端设置推送错误配置查看当前配置 日常使用仓库分组my profile修改上传代码简洁 网页访问 点击Advanced... 点击Accept the Risk and Contiue 初始用户名和密码都是admin,点击login…

树莓派CM4开启I2C与UART串口登录同时serial0映射到ttyS0 开启多串口

文章目录 前言1. 树莓派开启I2C与UART串口登录2. 开启多串口总结: 前言 最近用CM4的时候使用到了I2C以及多个UART的情况。 同时配置端口映射也存在部分问题。 这里集中记录一下。 1. 树莓派开启I2C与UART串口登录 输入指令sudo raspi-config 跳转到如下界面&#…

中国1km土壤特征数据集(2010年)

简介: 中国1km土壤特征数据集(2010)是基于第二次全国土壤调查的中国1:1000000比例尺土壤图和8595个土壤剖面图,以及美国农业部(USDA)中国区域土地和气候模拟标准,开发了一个多层土壤粒度分布数…

系统接口响应信息通用加密设计

设计目的 出于对一些敏感信息的安全性考虑,接口的响应信息需要进行加密,避免明文传输 使用场景 本系统前端响应信息加密 第三方系统响应信息加密 功能设计思路 配置模式加密 使用场景:本系统前端响应信息加密 在nacos中配置需要加密的…

Arcgis克里金插值报错:ERROR 999999: 执行函数时出错。 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误

ERROR 999999: 执行函数时出错。 问题描述 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误: WindowSetLyr: Window cell size does not match layer cell size. name: c:\users\lenovo\appdata\local\temp\arc2f89\t_t164, adepth: 32, type: 1, iomode: 6, …

39 对称二叉树

对称二叉树 理解题意:如果同时满足下面的条件,两个树互为镜像:题解1 【栈】递归——DFS题解2 【队列】迭代——BFS 给你一个二叉树的根节点 root , 检查它是否轴对称。 提示: 树中节点数目在范围 [1, 1000] 内-100 &l…

BI神器Power Query(25)-- 使用PQ实现表格多列转换(1/3)

实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。 更新表格数据 原始数据表: Col1Col2Att1Att2Att3Att4Att5Att6AAADD…

BUUCTF reverse wp 66 - 70

[SWPU2019]ReverseMe 反编译的伪码看不明白, 直接动调 这里显示"Please input your flag", 然后接受输入, 再和32进行比较, 应该是flag长度要求32位, 符合要求则跳转到loc_E528EE分支继续执行 动调之后伪码可以读了 int __cdecl main(int argc, const char **arg…

Cesium实现动态旋转四棱锥(2023.9.11)

Cesium实现动态悬浮旋转四棱锥效果 2023.9.11 1、引言2、两种实现思路介绍2.1 思路一:添加已有的四棱锥(金字塔)模型实现(简单但受限)2.2 思路二:自定义四棱锥几何模型实现(复杂且灵活&#xff…

面试必考精华版Leetcode199. 二叉树的右视图

题目&#xff1a; 代码&#xff08;首刷看解析&#xff09;&#xff1a; class Solution { public:vector<int> rightSideView(TreeNode* root) {unordered_map<int,int> rightmostvalue;queue<TreeNode*> nodeQueue;queue<int> depthQueue;int maxDe…

Nginx 代理WebSocket

## √ map $http_upgrade $connection_upgrade {default upgrade; close; }## √ upstream websocket {server 127.0.0.1:9999 weight10 max_fails2 fail_timeout30s; }server {listen 8020;gzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/…

windows系统一键开启和关闭虚拟化

说明 跟虚拟化相关的三个程序 一键开启脚本 REM 开启 Hyper-V 服务 pushd "%~dp0"dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txtfor /f %%i in (findstr /i . hyper-v.txt 2^>nul) do dism /online /norestart /add-package:"%Sy…

基于Cplex的人员排班问题建模求解(JavaAPI)

使用Java调用Cplex实现了阿里mindopt求解器的案例&#xff08;https://opt.aliyun.com/platform/case&#xff09;人员排班问题。 这里写目录标题 人员排班问题问题描述数学建模编程求解&#xff08;CplexJavaAPI&#xff09;求解结果 人员排班问题 随着现在产业的发展&#…

【kubernetes】kubernetes中的Deployment使用

1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位&#xff0c;Pod通常通过Service进行暴露&#xff0c;因此&#xff0c;通常需要管理一组Pod&#xff0c;RC和RS主要就实现了一组Pod的管理工作&#xff0c;其中&#xff0c;RC和RS的区别在于&#xff0c;RS提供更…

18scala笔记

Scala2.12 视频地址 1 入门 1.1 发展历史 … 1.2 Scala 和 Java Scala Java 编写代码使用scalac编译成.class字节码文件scala .class文件 执行代码 1.3 特点 1.4 安装 视频地址 注意配置好环境变量 简单代码 1.5 编译文件 编译scala文件会产生两个.class文件 使用java…