【 tulaoshi.com - Linux 】
传统的 Unix 系统保留使用者帐号资料,包括单向加密的密码,存放在一个称做``/etc/passwd'' 的文字档。
既然这个档案会被很多工具 (像是 ``ls'') 用做显示档案的拥有者等,为了用来比对 user id # 和使用者名称,
这个档案必须是可读的。 结果, 这造成安全上的风险。
另一个存放帐号的方法,我常使用的一个,是 shadow 密码格式。和传统方法一样,这个方法以相容的方式存放
帐号资料於 /etc/passwd 档案中。 然而,密码的部分是一个“x” 符号 (换言之. 并非真正放在档案中)。
另一个档案,称作 ``/etc/shadow'',存放加密过的密码以及其他资料像是帐号及密码的期限值等。 /etc/shadow
这个档案只能由 root 读取因此减少了风险。
有时一些 Linux 发行版本会强迫安装 Shadow 密码套件 以便使用 shadow 格式, Red Hat 让它变得很简单。
要在两者之间切换, 键入(以 root 身分):
/usr/sbin/pwconv 转换到 shadow 格式
/usr/sbin/pwunconv 转换回传统格式
使用 shadow 密码时, ``/etc/passwd'' 档内含帐号资料,看起来像这个样子:
smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash
每一项目栏位都由“:”冒号所分隔,意义如下:
使用者名称,最多 8 个符号,可以用大小写,通常都是小写
一个“x”在密码栏。密码存放在 ``/etc/shadow'' 档中。
user id 数值。由``adduser'' script 所分配。 Unix 使用这个栏位,以及後面的群组栏以辨别档案属於
哪个使用者。
group id 数值。 Red Hat 使用 group id 作为很独特的强化档案安全的方法。通常 group id 会和 user id
相同。
使用者全名。我不大确定这个栏位的最大长度,但是尽量保持合理 (30个字元以下).
使用者的 home 目录。 通常是 /home/username (例如. /home/smithj). 所有使用者个人档案,网页,回覆信
件等。会放在这里。
使用者的“shell 帐号”。常被设为``/bin/bash'' 提供取用 bash shell (我个人最喜欢的 shell)。
也许您不想提供给使用者 shell 帐号。您可以建立一个名为 ``/bin/sorrysh''的 script档。例如显示错误讯
息以及把使用者 log off,然後将这个 script 视为他们的预设 shell。
注意: 如果帐号需要提供“FTP”传送更新网页等。 shell 帐号要被设定为 ``/bin/bash'' -- 使用者的
home 目录必须设定特别的权限以防 shell 登入。 查看第7章,网页伺服器及 HTTP 快取代理主机管理
一节 有关的细节。
``/etc/shadow'' 档案内含使用者的密码及帐号期限资料 ,看起来像这个样子:
smithj:Ep6mckrOLChF.:10063:0:99999:7:::
像密码档一样,shadow 档的每一个栏位也是由“:” 冒号所分开,意义如下:
使用者名称,最多 8 个符号,可以用大小写,通常都是小写。直接对应 /etc/passwd 档案中的使用者名称。
密码,加密过的 13 个字元。一个空格 (就是. ::) 表示登入时不需密码 (不是个好主意),一个 ``*'' 项目
(就是 :*:) 指出帐号已经关闭。
密码最後一次变更起所经过的日数 (从1970年一月一日起 ) 。
密码经过几天可以变更 (0 表示可以随时变更)
密码经过几天必须变更 (99999 表示使用者可以保留他们的密码很多很多年不变)
密码过期之前几天要警告使用者 (7 为一)
密码过期几天後帐号会被取消
从1970年一月一日起,帐号经过几天会被取消
保留栏位