【转载】/etc/passwd & /etc/shadow 详解
转载自:http://blog.csdn.net/snlying/article/details/6130468
1,passwd文件
passwd文件存放在/etc目录下。这个文件存放着所有用户帐号的信息,包括用户名和密码,因此,它对系统来说是至关重要的。可以使用如下命令查看该文件:cat
/etc/passwd
Passwd文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有信息。每条记录由7个字段组成,字段间用冒号“:”隔开,其格式如下:
username:password:User ID:Group ID:comment:home directory:shell
字段含义:
username 用户名
它唯一地标识了一个用户帐号,用户在登录时使用的就是它。
password 该帐号的口令
passwd文件中存放的密码是经过加密处理的。Linux的加密算法很严密,其中的口令几乎是不可能被破解的。盗用帐号的人一般都借助专门的黑客程序,构造
出无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。因此,建议不要使用生日、常用单
词等作为口令,它们在黑客程序面前几乎是不堪一击的。特别是对那些直接连入较大网络的系统来说,系统安全性显得尤为重要。
User ID 用户识别码,简称UID。
Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。
Group ID 用户组识别码,简称GID。
不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。
comment 这是给用户帐号做的注解
它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。
home directory 主目录
这个目录属于该帐号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录
下,并且和用户名同名。
login command 用户登录后执行的命令
一般来说,这个命令将启动一个shell程序。例如,用bbs帐号登录后,会直接进入bbs系统,这是因为bbs帐号的login command指向的是bbs程序,等系统登录
到bbs时就自动运行这些命令。
系统帐号
系统中还有一些默认的帐号,如daemon、bin等。这些帐号有着特殊的用途,一般用于进行系统管理。这些帐号的口令大部分用(x)号表示,代表它们不能在登录时
使用。
2,shadow文件
为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装 Linux 时在相关配置的选项上选中了MD5和Shadow服务,那么将看
到的/etc/passwd文件里的passwd项上无论是什么用户,都是一个“x”,这就表示这些用户都登录不了;系统其实是把真正的密码数据放在了/etc/shadow文件里。
/etc/shadow文件只能以root身份来浏览。为什么要这样做呢,原因其实很简单,在系统设计的时候,/etc/passwd文件是任何人都可以读的,那么那些心有所图的人
就可以利用这个文件,使用各种各样的工具按照Linux密码加密的方法把用户甚至root的密码试出来,这样整个系统就会被他所控制,严重危害系统的安全和用户数
据的保密性。
3,有关命令
pwconv
根据/etc/passwd文件生成/etc/shadow。它把所有口令从/etc/passwd移到/etc/shadow中。
pwunconv
将/etc/shadow中的信息尽可能地恢复到/etc/passwd。
=================================================================================
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
下面来分析一下/etc/passwd文件,他的每个条目有7个域,分别是名字:密码:用户id:组id:用户信息:主目录:shell 例如:ynguo:x:509:510::/home/ynguo:/bin/bash
在利用了shadow文件的情况下,密码用一个x表示,普通用户看不到任何密码信息。如果你仔细的看看这个文件,会发现一些奇怪的用户名,她们是系 统的缺省账号,缺省账号是攻击者入侵的常用入口,因此一定要熟悉缺省账号,特别要注意密码域是否为空。下面简单介绍一下这些缺省账号
adm拥有账号文件,起始目录/var/adm通常包括日志文件
bin拥有用户命令的可执行文件
daemon用来执行系统守护进程
games用来玩游戏
halt用来执行halt命令
lp拥有打印机后台打印文件
mail拥有与邮件相关的进程和文件
news拥有与usenet相关的进程和文件
nobody被NFS(网络文件系统)使用
shutdown执行shutdown命令
sync执行sync命令
uucp拥有uucp工具和文件
传统上,/etc/passwd文件在很大范围内是可读的,因为许多应用程序需要用他来把UID转换为用户名。例如,如果不能访问/etc/passwd,那么ls -l命令将显示UID而不是用户名。但是使用口令猜测程序,具有加密口令的可读/etc/passwd文件有巨大的安全危险。所以出现了影子文件/etc/shadow。
影子口令系统把口令文件分成两部分:/etc/passwd和/etc/shadow。影子口令文件保存加密的口令;/etc/passwd文件中的密码全部变成x。Shadow只能是root可读,从而保证了安全。/etc/shadow文件每一行的格式如下:
用户名:加密口令:上一次修改的时间(从1970年1月1日起的天数):口令在两次修改间的最小天数:口令修改之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970年1月1日起账号被禁用的天数:保留域。
例如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172
bin:*:11024:0:99999:7:::
daemon:*:11024:0:99999:7:::缺省情况下,口令更新并不开启。如果你的系统没有启动影子文件,那么运行pwconv程序。
==========================================================================
● /etc/passwd
与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd 和/etc/shadow 文件是互补的。/etc/passwd 的内容简介:
在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割
第一字段:用户名(也被称为登录名);
第二字段:口令;其实密码已被映射到/etc/shadow 文件中;
第三字段:UID ,用户ID;
第四字段:GID,组ID;
第五字段:用户名全称,这是可选的;
第六字段:用户的家目录所在位置;
第七字段:用户所用SHELL 的类型;
● /etc/shadow
/etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd 而产生的,这两个文件是应该是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:
# ls -l /etc/shadow
-r——– 1 root root 1256 08-08 05:01 /etc/shadow
/etc/shadow 的权限不能随便改为其它用户可读,这样做是危险的。如果您发现这个文件的权限变成了其它用户组或用户可读了,要进行检查,以防系统安全问题的发生。
/etc/shadow 的内容分析;
/etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割;
第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果这个字段的值为空,帐号永久可用;
第五字段:两次修改口令间隔最多的天数;如果这个字段的值为空,帐号永久可用;
第六字段:提前多少天警告用户口令将过期;如果这个字段的值为空,帐号永久可用;
第七字段:在口令过期之后多少天禁用此用户;如果这个字段的值为空,帐号永久可用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段,目前为空,以备将来发展之用;
● /etc/group 简介
/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,
● 理解/etc/group 内容
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
第一字段:用户组名称;
第二字段:用户组密码;
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
【转载】/etc/passwd & /etc/shadow 详解的更多相关文章
- [转载]java中import作用详解
[转载]java中import作用详解 来源: https://blog.csdn.net/qq_25665807/article/details/74747868 这篇博客讲的真的很清楚,这个作者很 ...
- [转载]AxureRP 7.0部件详解(一)
本文为Axure RT7.0教程,本章主要介绍menu菜单.table表格.Tree Widget 树部件三个部件,后续将持续更新...... Menu 菜单 常用案例 网站导航菜单部件通常用于母板之 ...
- 【转载】Hadoop历史服务器详解
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:过往记忆(http://www.iteblog.com/) 原文地址: ...
- 转载:DNS解析过程详解
2015-09-20 此好文是转载,如有侵权联系我,立马删掉 DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com. ...
- 转载:MySQL EXPLAIN 命令详解学习
转载自:https://blog.csdn.net/mchdba/article/details/9190771 MySQL EXPLAIN 命令详解 MySQL的EXPLAIN命令用于SQL语句的查 ...
- (转载)cmd-命令大全及详解
原文地址:http://greatverve.cnblogs.com/archive/2011/12/09/windows-cmd.html 命令简介 cmd是command的缩写.即命令行 . 虽然 ...
- 【转载】jQuery.extend 函数详解
转载自:http://www.cnblogs.com/RascallySnake/archive/2010/05/07/1729563.html jQuery.extend 函数详解 JQuery的e ...
- (转载)完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
转自:http://blog.csdn.net/piggyxp/article/details/6922277 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何 ...
- 【转载】HBase基本数据操作详解【完整版,绝对精品】
转载自: http://blog.csdn.net/u010967382/article/details/37878701 概述 对于建表,和RDBMS类似,HBase也有namespace的概念,可 ...
随机推荐
- HZNU1015: 矩阵排序
http://acm.hznu.edu.cn/JudgeOnline/problem.php?id=1015 题意:把矩阵每一行都排序. (以前觉得很难的题目回头看看原来如此简单 ][]; ; i&l ...
- ural 1200
推出公式 然后特判两端 代码其实挺烂 但是有人竟然可以直接暴过去的 ...... #include <cstdio> #include <cstring> #in ...
- 盘点 OSX 上最佳的 DevOps 工具
[编者按]对于运维人员来说,他们往往需要各种各样的工具来应对工作需求,近日 Dustin Collins 通过「The Best DevOps Tools on OSX」一文对 OSX 平台上的工具进 ...
- Generating Huge reports in JasperReports
There are certain things to care while implementing the Jasper Reports for huge dataset to handle th ...
- hdu 4664 Triangulation 博弈论
看到这题时,当时还不会做,也没搞懂sg函数,于是狠狠的钻研了下博弈论,渐渐的知道了sg函数…… 现在在来做这题就很容易了,1A 打表容易发现在80左右的时候就出现循环节了 代码如下: #include ...
- [模拟]ZOJ3480 Duck Typing
题意:给了一坨...按题目意思输出就好了... 给一组案例 begin class d class c:d class b:c class a:b def d.m def d.n call a.m e ...
- Time.deltaTime 含义和应用
第一種:使用Time.deltaTime 一秒內從第1個Frame到最後一個Frame所花的時間,所以不管電腦是一秒跑60格或者一秒30格.24格,值都會趨近於一. 就結果而言,deltaTime是為 ...
- 嵌入式开发之NorFlash 和NandFlash
http://blog.csdn.net/tigerjibo/article/details/9322035 [摘要]:作为一个嵌入式工程师,要对NorFlash 和NandFlash要有最起码的认知 ...
- JavaScript 获取客户端计算机硬件及系统信息
1.浏览器信息 //浏览器信息 function BrowserInfo() { var userLanguage = navigator.userLanguage; // 用户在自己的操作系 ...
- MyEclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds
myeclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds - 刘琦的专栏 - 博客频道 - C ...