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

Linux文件之/etc/passwd和/etc/shadow

1./etc/passwd

passwd文件是以行为单位的配置文件,每行定义系统上的一个用户,行内分为字段,字段之间由一个冒号隔开。这些字段依次为:

用户名:密码:用户ID:主要组ID:GECOS:主目录:登录shell

字段解释:

用户名:就是一个用户名,登录时候用的

密码:在旧的UNIX系统上,这个字段含有用户的加密密码,为了安全性,现在的linux均显示为x或*号

用户ID:linux内核用于识别用户的一个整数ID

主要组ID:linux内核用于识别用户主要组的一个整数ID

GECOS:用户全名,安装linux时如果不输入全名,则显示为跟用户名一样,如果输入,则显示为全名(不可用于登录)

主目录:用户登录时,他的登录Shell将使用这个目录作为当前工作目录

登录Shell:用户登录时的默认Shell,在redhat 企业版中,登录shell通常是/bin/bash

一个/etc/passwd文件中的典型几行数据

root:x:0:0:root:/root:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin

tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat6:/bin/sh

说明:第2个字段用户加密后的密码在现代linux中不显示的,显示为"x"或"*"号

如需了解passwd详细信息,可运行 man 5 passwd  命令来查看

2./etc/shadow

以前用户的加密都是被保存在/etc/passwd文件中的第2个字段中,并且每个用户都可以读取,随着计算机性能的发展,暴力破解变得相对比较容易,因此,现在linux采用一种“影子密码”,用户的密码被保存在专门的/etc/shadow文件中,其权限不允许普通用户查看,root用户可以查看,了解详细信息可执行man 5 shadow。

/etc/shadow 文件信息存储结构,字段依次为

用户名:加密密码:上次更改密码的时间:最小更改密码间隔:密码有效期限:密码过期提示时间:密码锁定期:账户有效期:保留字段

/etc/shadow文件中几行数据

root:$6$DgEqy0v1u0STl/ML$lmRzdT/Ad6PoNmahItTnvc1NwoBlvSLEriBDXyE4rhTGpFHweMTe/GkW5bSsAsVQjMLrsDAY5X.jr8NsE1Ekh1:

15148:0:99999:7:::
lzgonline:$6$2ji/.tNs9lWLcAQu$dCsR22xAxHj6q9rDSE1w14KeflWmvS5.RDD2ro11/H55TIkM69ghyPZgazi.egaTuQhIWWgLPZMvcuSKb3vFs/:

15148:0:99999:7:::
apache:!!:15148::::::

用户使用passwd命令更改密码时,如果不是root用户,则passwd不接受任何参数和选项,即用户只能更改自己的密码。

3.三种类型的用户

普通用户:普通用户是使用系统真实用户人群。普通用户通常把/bin/bash作为登录Shell和/home的子目录作为主目录。一般情况下,普通用户只在自己的主目录和系统范围内的临时目录里(如/tmp和/var/tmp)创建文件。在redhat企业版linux中,普通用户的用户ID数通常大于500.

root用户:用户ID为0的用户,也被称为超级用户,root用户在系统上拥有完全权限,可以修改和删除任何文件,可以运行任何命令,可以取消任何进程。root用户负责增加和保留其他用户、配置硬件、添加系统软件。虽然root用户可以在系统上的任何地方创建文件,但它也通常使用/root作为主目录

系统用户:大多数linux系统保留一系列低UID值用户作为系统用户,系统用户不代表人,而代表系统的组成部分。例如,运行Apache网络服务器的进程经常作为用户apache( 见上面的passwd文件中apache用户信息)来运行。系统用户一般没有登录Shell,因为它不代表实际登录的用户。同样,系统用户的主目录很少在/home中,而通常在属于相关应用的系统目录中。例如,用户apache的主目录是/var/www。在redhat企业版linux中,系统用户的UID值范围在1-499之间。

相关文章:

  • OCR - 微软windows 11系统自带的Windows OCR功能初体验
  • 公众号网课查题系统
  • 关于SELECT...FOR UPDATE到底锁表还是锁行
  • 解决问题的思路很重要,运维领域,结果对,过程就对!
  • C++ 顺序表和单链表的二路归并思想(详解+示例代码)
  • T1071 菲波那契数(信息学一本通C++)
  • Android开发基础——广播实践
  • opencv 深度学习
  • Windows取证——基本网络命令
  • CDH 09Cloudera Manager Kerberos安装配置(markdown新版二)
  • 小米面试——案例总结
  • 电源硬件设计----升降压变换器(负压输出)基础
  • Nodejs系列之模块加载机制
  • MyBatis 查询数据库入门
  • LQ0026 修剪灌木【数学】
  • 0x05 Python数据分析,Anaconda八斩刀
  •  D - 粉碎叛乱F - 其他起义
  • IndexedDB
  • JavaScript新鲜事·第5期
  • Java编程基础24——递归练习
  • Java精华积累:初学者都应该搞懂的问题
  • leetcode386. Lexicographical Numbers
  • Mysql数据库的条件查询语句
  • mysql外键的使用
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PAT A1092
  • Rancher如何对接Ceph-RBD块存储
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • springMvc学习笔记(2)
  • Vue全家桶实现一个Web App
  • - 概述 - 《设计模式(极简c++版)》
  • 力扣(LeetCode)965
  • 如何编写一个可升级的智能合约
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小试R空间处理新库sf
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 阿里云ACE认证之理解CDN技术
  • ​TypeScript都不会用,也敢说会前端?
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #include<初见C语言之指针(5)>
  • #pragma multi_compile #pragma shader_feature
  • $.ajax中的eval及dataType
  • (+4)2.2UML建模图
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (java)关于Thread的挂起和恢复
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core控制台应用程序初识
  • .NET Core中的去虚
  • .Net IE10 _doPostBack 未定义