考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:操作系统 > Unix > 文章内容
  

Unix系统:UnixBSDLinux的口令机制初探

 [ 2017年8月25日 ] 【

  注意:当编辑/etc/passwd文件来建立一个新账号时,应在密码字段放一个"*",(一些伪用户,例如daemon也如此)以避免用户未经权而使用该账号。直到你为此新建账号设置了真实密码。

  3.2/etc/shadow文件

  传统上,/ e t c / p a s s w d文件在很大范围内是可读的,因为许多程序需要用它来把U I D转换为用户名。例如,如果不能访问/ e t c / p a s s w d,那么ls -l命令将显示数字U I D而不是用户名。不幸的是,使用口令猜测程序,具有加密口令的可读/ e t c / p a s s w d文件表现出巨大的安全危险。多数近来的U N I X产品支持一个变通方法:影子口令文件。影子口令系统把口令文件分成两部分: / e t c / p a s s w d和影子口令文件。影子口令文件保存加密的口令;/ e t c / p a s s w d中的c o d e d - p a s s w o r d域都被置为“X”或其他替代符号。影子口令文件只能被r o o t或像p a s s w d这样的s e t _ u i d程序在需要合法访问时读取,其他所有非授权用户都被拒绝访问。习惯上,影子口令文件保存在/ e t c / s h a d o w中,尽管有些系统使用可选的路径和文件名。例如B S D系统把加密的口令保存在/ e t c / m a s t e r. p a s s w d。

  /etc/shadow剖析

  / e t c / s h a d o w文件包含用户名和加密口令以及下面一些域:

  (1) 上一次修改口令的日期,以从1 9 7 0年1月1日开始的天数表示。

  (2) 口令在两次修改间的最小天数。口令在建立后必须更改的天数。

  (3)口令更改之前向用户发出警告的天数。

  (4)口令终止后帐号被禁用的天数。

  (5)自从1 9 7 0年1月1日起帐号被禁用的天数。

  (6)保留域。

  下面是一个Red Hat Linux系统中/ e t c / s h a d o w文件的例子:

  root:mGqwuvdF41bc:10612:0:99999:7:::

  bin:*:10612:0:99999:7:::

  daemon*:10612:0:99999:7:::

  adm:*:10612:0:99999:7:::

  lp*:10612:0:99999:7:::

  sync:*:10612:0:99999:7:::

  shutdown:*:10612:0:99999:7:::

  halt:*:10612:0:99999:7:::

  mail:*:10612:0:99999:7:::

  news:*:10612:0:99999:7:::

  uucp:*:10612:0:99999:7:::

  operator:*:10612:0:99999:7:::

  freebird:sdfaBh45ZiQn1llfa:10612:0:99999:7:::

  缺省情况下,口令更新并不开启。于是没有口令更改前的最小天数,也没有口令必须更改的日期。口令在99 999天内必须更换的声明几乎无用,因为从现在起几乎还有2 5 0年。在口令终止前7天警告用户的声明也没用,除非选择使用口令更新。在本例中没有声明,还可以在口令终止和帐号禁用之间设置一个时间段。

  在可选影子口令功能的系统中,用一条相对简单的命令设置并更新影子口令文件:p w c o n v。该命令在影子口令文件不存在的情况下创建一个新的。如果已存在一个影子文件,p w c o n v把/ e t c / p a s s w d中的新用户添加到/ e t c / s h a d o w中,把/ e t c / p a s s w d中没有的用户从影子文件中删去,并把口令从/ e t c / p a s s w d移到影子文件中。在Red Hat Linux中,p w c o n v把新的/ e t c / p a s s w d文件写到一个名为n p a s s w d的文件中,把新影子文件写到n s h a d o w中。这些新文件需要手工进行重命名或拷贝。用户可以用p w u n c o n v命令返回到不使用影子文件的情况下,它把影子文件中的信息合并回传统的口令文件中。

  提示:早期的L i n u x不支持影子口令。

  注意:在solaris下,必须使用隐蔽口令文件,在Linux下,如果用户安装了shadow软件也可以使用。

  3.2/etc/master.passwd

  在BSD下,实际的口令文件是/etc/master.passwd.,这里的密码都是简单的文本数据库,每个用户占一行,行中字段用":"隔开。 /etc/master.passwd权限为0600,而/etc/passwd为0644,这就意味着任何人都人存取/etc/passwd.但只有 root才能读取/etc/master.passwd.

  在BSD中,/etc/master.passwd是/etc/passwd的超集,它直接生成/etc/passwd文件。所以在BSD中 /etc/passwd文件总是不需要直接进行编辑。一旦运行vipw,passwd,chfn,chsh或者chpass这些命令,也是对 /etc/master.passwd进行修改。并且修改后会自动生成/etc/passwd.(一同生成的还有由pwd_mkdb工具生成的 /etc/master.passwd的散列表形式。)

  平面文件数据库(/etc/passwd,/etc/master.passwd)都只对少量用户合适,用户一多,查找速度就慢。因此在BSD 下相应的还有两个数据库格式的散列表/etc/pwd.db和/etc/spwd.db,其权限也和上面两文件对应。每次运行chfn,passwd等命令后,pwd_mkdb都会自动修改这两个文件。

  提示:若希望根据另一个FreeBSD重新构件用户列表或者从另一个FreeBSD机器移植一个用户列表,只须简单的把新的master.passwd(比如master.passwd.new)文件置于/etc/下(或/ 下),然后运行如下命令(注意先备份):

  %cp /etc/master.passwd /etc/master.passwd.bak

  %pwd_mkdb -p /etc/master.passwd.new

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved