linux下的passwd文件与shadow文件简介

发表于: lnmp | 作者: | 日期: 2012/12/27 08:12

Linux系统中账号管理最重要的两个文件就是:/etc/passwd和/etc/shadow。如果没有这两个文件,那么你是无论如何也不能登录Linux的。呃,也许有高手可以吧。呵呵。
今天就参照鸟哥的书,以及自己刚折腾起来的UBUNTU系统来简单理解一下这两个文件,让我们一窥究竟,看看这里面到底是啥东西,了解其内部结构。
真郁闷,UBUNTU9.04默认是不装VIM的,装的是另外一个什么什么东西,看来抽空一定要把这编程利器给装上,否则太不爽了。嗯。

sudo vi /etc/passwd

看一下里面的结构,我只抽出其中两句来讲解,因为没有想到这里面居然会有30多行,挺奇怪的。呵。

root:x:0:0:root:/root:/bin/bash
xiaoxiaozi:x:1000:1000:xiaoxiaozi,,,:/home/xiaoxiaozi:/bin/bash

这个文件的构造是这样的:每一行都代表一个账号,有几行就代表系统中有几个账号(对,别惊讶,我的系统就是有30多个账号)
不过,虽然我的账号很多,但是你要知道哈。有很多账号本来就是系统中必须的,称为系统账号。例如:bin和nobody其实都是系统账号。这些账号是系统正常运行所需要的,没事不要轻易折腾他们。
我们先来看一下每个Linux系统都会有第一行,就是root系统管理员行,可以明显的看出,每一行使用“:”分隔开,其一共有七部分,下面我们来说明一下这七部分各自代表的含义。
账号名称:
对应UID。如果有对UID不是很理解的同学可以去看我以前写过的一篇文章——文件的特殊权限:SUID,SGID,Sticky Bit
密码:
以前Linux的密码直接存在该文件中,现在都存在/etc/shadow中了,存入后者的就用x表示,如果是!说明此用户不能用密码登录。这也是为什么UBUNTU不能用ROOT账号登录的根本原因。
UID:
就是用户识别码(ID),当UID为0时说明其账号是管理员身份,1~499是保留给系统使用的主要是一些系统服务,不过你用了也没有关系。500~65535是给一般用户的。
GID:
/etc/group文件有关,就是用户初始化组的ID,这个我稍候会做一下简介,呵。
用户信息说明栏:
没啥用,就是解释这个用户的,我感觉还是重复一下用户名;
家目录:
就是该用户的“主文件夹”,一般看我的xiaoxiaozi的家目录就是/home/xiaoxiaozi
Shell:
SHELL脚本,看,现在一般默认都是BASH,可见其流行程序。呵。
下面我再简单介绍一下shadow文件,sudo vi /etc/shadow

root:!:14402:0:99999:7:::
xiaoxiaozi:$6$9Dm1F/MTo$rLKI4LJEZ1m1k63zzK9M3FoNdZRUTB1pbN3Igibbo9fo.
W4EQl74J7oa1c3ogmDbmJQHdV2toEMXX7taEU0/.0:14402:0:99999:7:::

同样是用“:”分隔,这个文件记录的却是和用户密码相关的数据信息。每一行仍然对应一个账号。这里一共有九部分,下面我们来说明一下这九部分各自代表的含义。
账号名称:
我们都不傻,肯定知道密码一定要与账号对应,所以这里的第一个字段就是账号名,很正常的。
密码:
这是真正的密码,不过是经过加密的啊。一般高人还是可以破解出来的,所以,这里我把我的密码改了几个字符,呵呵。如果密码栏第一个字符为*或者!,表示这个号不会用来登录。
最近更改密码的日期:
这里至于 为啥会是14402这种怪异的数字。那是因为其是以1970年1月1日做为第1天,然后顺次相加。
密码不可更改的天数:
即,你不想让某个用户频繁更改密码就可以把这个设成10000。
密码需要重新更改的天数:
和上面的一样,有点绕,就是你的密码在多少天内必须得改了。
密码更改期限前的警告日期:
比如说你将上一栏设为了20天,然后这个设为了5天,那么在还有5天就到20天的时候(真啰嗦),系统会自动提示“小子,还有5天啦,你必须得修改你的密码了,否则你就登录不了了”
密码过期的宽限时间:
这个嘛,是人都有忘和懒的时候,就是你密码都过期了(到了必须更改的日子你还没改)然后你把本项设为10,那么在过期后的10天内你还可以用原密码登录。但是是否还有提示我就不清楚了,理论上是应该有的。
账号失效时间:
这个不用说了吧?我们用WP的,在空间商那里空间都是有到期时间的,就是这个东西控制的。
保留:
这个就是说还没想好放啥呢。不过先占个位置,也许以后要拉点啥呢?
就是这样啦,这两个文件就讲解完了。把作者留下的TIPS抄一下,挺有用的。
就是当你忘记你的密码了,怎么办呢?SO,EASY~~
用LIVE CD 或者单用户维护模式进入Linux的命令行模式,然后更改/etc/shadow文件,把ROOT密码清空(清你当前用户的),然后你就可以不用输入密码进系统了,简单吧?呵,千万别重装系统哈,太麻烦了。
本文整理自百度文库:http://wenku.baidu.com/view/91e8a20703d8ce2f00662363.html
原作者未知

: https://blog.darkmi.com/2012/12/27/43.html

本文相关评论 - 1条评论都没有呢
Post a comment now » 本文目前不可评论

No comments yet.

Sorry, the comment form is closed at this time.