next up previous contents index
Next: Picking numeric user and Up: Creating a user Previous: Creating a user

 

/etc/passwd和其他信息文件

Unix系统的基本用户数据库是文本文件,/etc/passwd (叫口令文件), 它列出所有有效用户名及其相关信息。文件的每个用户一行,分为用:分隔的7个域:

  1. 用户名
  2. 加密格式的口令
  3. 数字的user id
  4. 数字的group id
  5. 全名或帐户的其他说明
  6. 家目录
  7. 登录shell(登录时运行的程序)
详细的格式说明在passwd (5)中。

系统中的任何用户可以读口令文件,因此他们可以得到其他用户的名字。 即任何人也可以得到口令(第二个域)。口令文件加密了口令,所以利润上说应该没有问题。 但是,加密是可破解的,尤其是口令比较简单时(例如太短,或能在词典中找到的)。 因此,口令存在口令文件中并不好。

许多Linux系统有影子口令shadow passwords文件。 这种方法将加密的口令存在另一个文件/etc/shadow 中, 而这个文件只有root能读。 /etc/passwd 文件在第二个域只有一个special marker。 Any program that needs to verify a user is setuid,那么可以存取影子口令文件。 而只使用口令文件其他域的普通程序,不能得到口令。 gif



Lars Wirzenius
Sun Jun 29 13:31:22 EEST 1997