/etc/shadow --shadowed password file

来源:互联网 发布:数据库的基本概念 编辑:程序博客网 时间:2024/05/17 09:18

NAME
       shadow - shadowed password file      


DESCRIPTION
       shadow is a file which contains the password information for the
       systems accounts and optional aging information.

       This file must not be readable by regular users if password security is to be maintained.

       Each line of this file contains 9 fields, separated by colons (“:”)
.

     

       我们知道很多程序的运行与权限有关,而权限与UID/GID有关!因此程序当然需要读取/etc/passwd来了解不同帐号的权限.虽然早期的密码也有加密过,但却放置到/etc/passwd的第二个字段上!这样一来就很容易被有心人士所窃取,加密过的密码也能够通过暴力破解法try and error(试误)找出来!


            由于 /etc/passwd 并不安全,所以后来发展出将密码移动到/etc/shadow 这个档案中分隔开来的技术!并且加入了很多的限制参数在/etc/shadow 里头!我们来了解一下这个档案的构造吧!


root:$K.K2.hqu.QfV.dkjjteojiasdlkjeo:11661:0:99999:7:::
bin:*:11661:0:99999:7:::
daemon:*:11661:0:99999:7:::
adm:*:11661:0:99999:7:::

 

      这是 shadow 的形式,也同样的以『:』作为分隔的符号。数一数,共可以发现有九个字段,分别给他说明如下:
 

  1. 账号名称:这个跟 passwd 需要对应!也就是跟passwd 相同的意思啦!

  2.  
  3. 密码:这个才是真正的密码,而且是经过编码过的密码啦!你只会看到有一些特殊符号的字母就是了!需要特别留意的是,虽然这些加密过的密码很难被解出来,但是『很难』不等于『不会』,所以,这个档案的预设属性是『-rw-------』亦即只有root 才可以读写就是了!你得随时注意,不要不小心更动了这个档案的属性呢!另外,如果是在密码栏的第一个字符为『* 』表示这个账号并不会被用来登入的意思。所以万一哪一天你的某个使用者不乖时,可以先在这个档案中,将他的密码多加一个* !嘿嘿!他就无法使用该账号啰!直到他变乖了,再给他启用啊!

  4.  
    注意事项:密码忘记或者被更动了?

    有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外,有的时候是被入侵了,root 的密码被更动过,该如何是好?

    这个时候就必须要使用到 /etc/shadow 这个数据了!我们刚刚知道密码是存在这个档案中的,所以只要你能够以软盘开机,进入『单人维护系统』,那么就可以不用输入密码来以root 的身份登入(通常就是在 boot: 时输入 linux single 就是了!)然后进入/etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux一次,这个时候 root 将不需要密码(有的时候需要输入空格符)就可以登入了!这个时候请赶快以passwd 设定 root 密码即可!

     
  5. 上次更动密码的日期:这个字段记录了『更动密码的那一天』的日期,不过,很奇怪呀!在我的例子中怎么会是11979 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为1 ,而 1971 年 1 月 1 日则为 366 啦!所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的2002 年 1 月 1 日就是 11689 啦,了解了吗?

  6.  
  7. 密码不可被更动的天数:第四个字段记录了这个账号的密码需要经过几天才可以被变更!如果是0 的话,表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!

  8.  
  9. 密码需要重新变更的天数:由于害怕密码被某些『有心人士』窃取而危害到整个系统的安全,所以有了这个字段的设计。你必须要在这个时间之内重新设定你的密码,否则这个账号将会暂时失效。而如果像上面的99999 的话,那就表示,呵呵,密码不需要重新输入啦!不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!

  10.  
  11. 密码需要变更期限前的警告期限:当账号的密码失效期限快要到的时候,系统会依据这个字段的设定,发出『警告』言论给这个账号,提醒他『再过n 天你的密码就要失效了,请尽快重新设定你的密码呦!』,如上面的例子,则是密码到期之前的7 天之内,系统会警告该用户。

  12.  
  13. 账号失效期限:如果用户过了警告期限没有重新输入密码,使得密码失效了,而该用户在这个字段限定的时间内又没有跟root 反应,让账号重新启用,那么这个账号将暂时的失效!

  14.  
  15. 账号取消日期:这个日期跟第三个字段一样,都是使用1970 年以来的日期设定。这个字段表示:这个账号在此字段规定的日期之后,将无法再使用。这个字段会被使用通常应该是在『收费服务』的系统中,你可以规定一个日期让该账号不能再使用啦!

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

 
     这个 /etc/shadow 是很重要的数据,千万不能遗失也不能被 root以外的人看到或修改!尤其是密码栏,因为很早之前就已经发明了『暴力计算』密码的程序,如果你的密码被看过了,则别人可以利用该程序去演算出你的真实密码,呵呵,到时候可就伤脑筋了!切记切记!

 

FILES
       /etc/passwd
           User account information.

       /etc/shadow
           Secure user account information.

       /etc/shadow~
           Backup file for /etc/shadow.

           Note that this file is used by the tools of the shadow   toolsuite(工具包),but not by all user and password management tools.


原创粉丝点击