认识 /etc/passwd 档案与 /etc/shadow 档案

账号管理最重要的两个档案就是『 /etc/passwd与 /etc/shadow 』了!这两个档案可以说是 Linux 里头最重要的档案之一了!如果没有这两个档案的话,呵呵!您可是无法登入Linux 的呦!
passwd 的构造:
这个档案的构造是这样的:每一行都代表一个账号,有几行就代表有几个账号在你的系统中!不过需要特别留意的是,里头很多账号本来就是系统中必须要的(例如bin, daemon, adm, nobody 等等),请不要随意的杀掉他??;

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
上面是 Mandrake 9.0 预设的几个账号,这些账号是系统在使用的呦!我们先来看一下root 这个系统管理员这一行好了,你可以明显的看出来,每一行使用『:』分隔开,共有七个咚咚,分别是

账号名称:就是账号名称啦!对应 UID 用的!例如root 就是预设的系统管理员的账号名称;
 密码:早期的 Unix 系统的密码是放在这个档案中的,不过由于这样一来很容易造成数据的被窃取,所以后来就将数据给他改放到/etc/shadow 中了,这一部份等一下再说,而这里你会看到一个 x ,呵呵!别担心密码已经被移动到shadow 这个加密过后的档案啰;
 UID:这个就是使用者识别码(ID)啰!通常 Linux对于 UID 有几个限制需要说给您了解一下:0 系统管理员,所以当你要作另一个系统管理员账号时,你可以将该账号的UID 改成 0 即可;1~500保留给系统使用的ID,其实 1~65534之间的账号并没有不同,也就是除了 0 之外,其它的 UID 并没有不一样,预设500 以下给系统作为保留账号只是一个习惯。这样的好处是,以 named 为例,这个程序的预设所有人named 的账号 UID 是 25 ,当有其它的账号同样是 25 时,很可能会造成系统的一些小问题!为了杜绝这样的问题,建议保留500 以前的 UID 给系统吧!500~65535 给一般使用者用的!上面这样说明可以了解了吗?是的, UID 为 0 的时候,就是 root 呦!所以请特别留意一下你的/etc/passwd 档案!
 GID:这个与 /etc/group 有关!其实 /etc/group的观念与 /etc/passwd 差不多,只是他是用来规范 group 的而已!
 说明:这个字段基本上并没有什么用途,只是用来解释这个账号的意义而已!不过,如果您提供使用 finger 的功能时,这个字段可以提供很多的讯息呢!底下的chfn 可以解释一下啰!
 家目录:这是使用者的家目录,以上面为例, root的家目录在 /root ,所以当 root 登入之后,马上在的所在就是 /root 里头啦!呵呵!如果你有个账号的使用空间特别的大,你想要将该账号的家目录移动到其它的硬盘去,没有错!可以在这里进行修改呦!预设的使用者家目录在/home/yourIDname
 Shell :所谓的 shell 是用来沟通人类下达的指令与硬件之间真正动作的界面!我们通常使用/bin/bash 这个 shell 来进行指令的下达!关于 shell 的用法我们会在后面再提及的!这里比较需要注意的是,有一个shell 可以用来替代成让账号无法登入的指令!那就是 /bin/false 这个东西!这也可以用来制作纯pop 邮件账号者的数据呢!

shadow 的构造:

由于 /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 的形式,也同样的以『:』作为分隔的符号。数一数,共可以发现有九个字段,分别给他说明如下:

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

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

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

 
上次更动密码的日期:这个字段记录了『更动密码的那一天』的日期,不过,很奇怪呀!在我的例子中怎么会是11979 呢?呵呵,这个是因为计算 Linux 日期的时间是以 1970 年 1 月 1 日作为1 ,而 1971 年 1 月 1 日则为 366 啦!所以这个日期是累加的呢!得注意一下这个资料呦!那么最近的2002 年 1 月 1 日就是 11689 啦,了解了吗?
 密码不可被更动的天数:第四个字段记录了这个账号的密码需要经过几天才可以被变更!如果是0 的话,表示密码随时可以更动的意思。这的限制是为了怕密码被某些人一改再改而设计的!如果设定为20 天的话,那么当你设定了密码之后, 20 天之内都无法改变这个密码呦!
 密码需要重新变更的天数:由于害怕密码被某些『有心人士』窃取而危害到整个系统的安全,所以有了这个字段的设计。你必须要在这个时间之内重新设定你的密码,否则这个账号将会暂时失效。而如果像上面的99999 的话,那就表示,呵呵,密码不需要重新输入啦!不过,如果是为了安全性,最好可以设定一段时间之后,严格要求使用者变更密码呢!
 密码需要变更期限前的警告期限:当账号的密码失效期限快要到的时候,系统会依据这个字段的设定,发出『警告』言论给这个账号,提醒他『再过n 天你的密码就要失效了,请尽快重新设定你的密码呦!』,如上面的例子,则是密码到期之前的7 天之内,系统会警告该用户。
 账号失效期限:如果用户过了警告期限没有重新输入密码,使得密码失效了,而该用户在这个字段限定的时间内又没有跟root 反应,让账号重新启用,那么这个账号将暂时的失效!
 账号取消日期:这个日期跟第三个字段一样,都是使用1970 年以来的日期设定。这个字段表示:这个账号在此字段规定的日期之后,将无法再使用。这个字段会被使用通常应该是在『收费服务』的系统中,你可以规定一个日期让该账号不能再使用啦!
 保留:最后一个字段是保留的,看以后有没有新功能加入。 
这个 /etc/shadow 是很重要的数据,千万不能遗失也不能被 root以外的人看到或修改!尤其是密码栏,因为很早之前就已经发明了『暴力计算』密码的程序,如果你的密码被看过了,则别人可以利用该程序去演算出你的真实密码,呵呵,到时候可就伤脑筋了!切记切记!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值