[分享]linux中的/etc/shadow文件

游客 5月前 94

/etc/shadow由于每个程序都需要取得 uid 与 gid 来判断权限的问题,所以, /etc/passwd 的权限必须要设定成为 -rw-r--r-- 这样的权限,在这样的情况下, 使用者的密码不就任何人都可以看到吗?即使这个档案内的密码栏是加密的, 坏心肠的朋友也可能利用暴力破解法去 try and error 找出您的密码数据...... 因为这样的关系,所以后来发展出将密码移动到 /etc/shadow 这个档案分隔开来的技术, 而且还加入很多的密码限制参数在 /etc/shadow 里头呢!我们先来了解一下这个档案的构造吧! 我的 /etc/shadow 档案有点像这样:root:$1$i9Ejldjfjio389u9sjl$jljsoi45QE/:12959:0:99999:7:::bin:*:12959:0:99999:7:::daemon:*:12959:0:99999:7:::adm:*:12959:0:99999:7:::基本上, shadow 同样以『:』作为分隔符,如果数一数,会发现共有九个字段啊, 这九个字段的用途是这样的:1. 账号名称:由于密码也需要与账号对应啊~因此, 这个档案的第一栏就是账号,必须要与 /etc/passwd 相同才行!2. 密码:这个才是真正的密码,而且是 经过编码过的密码啦! 你只会看到有一些特殊符号的字母就是了!需要特别留意的是, 虽然这些加密过的密码很难被解出来,但是『很难』不等于『不会』,所以, 这个档案的预设属性是『-rw-------』或者是『-r--------』,亦即只有 root 才可以读写就是了!你得随时注意,不要不小心更动了这个档案的属性呢!另外, 如果是在密码栏的第一个字符为『 * 』或者是『 ! 』,表示这个账号并不会被用来登入的意思。 所以万一哪一天你的某个使用者不乖时,可以先在这个档案中,将他的密码字段的最前面多加一个 * !嘿嘿!他就无法使用该账号啰!直到他变乖了,再给他启用啊!3. 最近更动密码的日期:这个字段记录了『更动密码的那一天』的日期, 不过,很奇怪呀!在我的例子中怎么会是 12959 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为 1 ,而 1971 年 1 月 1 日则为 366 啦! 所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的 2005 年 1 月 1 日就是 12784 啦,了解了吗?4. 密码不可被更动的天数: 第四个字段记录了这个账号的密码需要经过几天才可以被变更!如果是 0 的话, 表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为 20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!5. 密码需要重新变更的天数: 由于害怕密码被某些『有心人士』窃取而危害到整个系统的安全,所以有了这个字段的设计。 你必须要在这个时间之内重新设定你的密码,否则这个账号将会暂时失效。 而如果像上面的 99999 的话,那就表示,呵呵,密码不需要重新输入啦! 不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!6. 密码需要变更期限前的警告期限:当账号的密码失效期限快要到的时候, 就是上面那个『必须变更密码』的那个时间时, 系统会依据这个字段的设定,发出『警告』言论给这个账号,提醒他『再过 n 天你的密码就要失效了,请尽快重新设定你的密码呦!』,如上面的例子,则是密码到期之前的 7 天之内,系统会警告该用户。7. 密码过期的恕限时间:如果用户过了警告期限没有重新输入密码, 使得密码失效了,也就是说,你在『必须变更密码的期限前,并没有变更你的密码!』 那么该组密码就称为『失效的密码』啰~怎么办?没关系,还有这个字段的天数设计啊~ 意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。 而如果在这个天数后还是没有变更密码,呵呵!那么您的账号就失效了!无法登入!8. 账号失效日期:这个日期跟第三个字段一样,都是使用 1970 年以来的总日数设定。这个字段表示: 这个账号在此字段规定的日期之后,将无法再使用。 这个字段会被使用通常应该是在『收费服务』的系统中, 你可以规定一个日期让该账号不能再使用啦!9. 保留:最后一个字段是保留的,看以后有没有新功能加入。举个例子来说好了,假如我的 dmtsai 这个使用者的密码栏如下所示:dmtsai:$1$8zdAKdfC$XDa8eSus2I7nQL7UjRsIy/:13025:5:60:7:2:13125:这表示什么呢?要注意的是, 13025 是 2005/08/30 ,所以, dmtsai 这个使用者他的密码相关意义是:最近一次更动密码的日期是 2005/08/30 (13025);能够修改密码的时间是 5 天以后,也就是 2005/09/04 以前 dmtsai 不能修改自己的密码; 如果使用者还是尝试要更动自己的密码,系统就会出现这样的讯息:You must wait longer to change your passwordpasswd: Authentication token manipulation error使用者必须要在 2005/09/04 到 2005/10/29 之间的 60 天限制内去修改自己的密码,若 2005/10/29 之后还是没有变更密码时,该账号就会宣告失效;如果使用者一直没有更改密码,那么在 2005/10/29 之前的 7 天内,系统会警告 dmtsai 应该修改密码的相关信息;例如当 dmtsai 登入时,系统会主动提示如下的信息:Warning: your password will expire in 5 days如果该账号一直到 2005/10/29 都没有更改密码,由于还有两天的恕限时间,因此, dmtsai 还是可以在 2005/10/31 以前继续登入;如果使用者在 2005/10/29 以前变更过密码,那么那个 13025 的日期就会跟着改变,因此, 所有的限制日期也会跟着相对变动喔!^_^无论使用者如何动作,到了 13125 ,大约是 2005/12/8 左右,该账号就失效了~透过这样的说明,您应该会比较容易理解了吧?! ^_^Tips: 常常听到:我的密码忘记或者被更动了?怎么办? 有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好? 这个时候就必须要使用到 /etc/shadow 这个数据了!我们刚刚知道密码是存在这个档案中的, 所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬盘顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空格符) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。关 【公告】欢迎大家踊跃尝试高研班11月试题,挑战自己的极限!
最新回复 (0)
返回
发新帖