Linux中/etc/passwd和/etc/shadow文件格式介绍

几乎所有的类Unix操作系统的口令文件的格式都雷同,Linux亦不例外。口令安全是Linux操作系统的传统安全问题之一。

Linux中/etc/passwd和/etc/shadow文件格式介绍

  传统口令与影子口令

 

  /etc/passwd是存放用户的基本信息的口令文件。该口令文件的每一行都包含由6个冒号分隔的7个域:

/etc/passwd  是存放用户的地方,内容如下:

  username: passwd: uid: gid: comments: directory: shell

   www.2cto.com  

  以上从左到右7个域分别叙述如下:

root:  x  : 0  :  0  : root : / root :  /  bin/bash

  username:是用户登陆使用的名字。

bin:x:1:1:bin:/bin:/sbin/nologin

  passwd:是口令密文域。密文是加密过的口令。如果口令经过shadow则口令密文域只显示一个x,通常,口令都应该经过shadow以确保安全。如果口令密文域显示为*,则表明该用户名有效但不能登陆。如果口令密文域为空则表明该用户登陆不需要口令。

daemon:x:2:2:daemon:/sbin:/sbin/nologin

  uid:系统用于唯一标识用户名的数字,uid系统是这样分配的:

adm:x:3:4:adm:/var/adm:/sbin/nologin

  0 超级用户

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

  1~10 守护程序和伪用户

sync:x:5:0:sync:/sbin:/bin/sync

  11~99 系统保留用户

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

  100~ 正常用户

halt:x:7:0:halt:/sbin:/sbin/halt

  gid:表示用户所在默认组号。由/etc/group文件决定。

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

  comments:描述用户的个人信息。

 

  directory:定义用户的初始工作目录。

格式:

  shell:就是指定用户登陆到系统后启动的外壳程序。

用户名: 密码 : uid  : gid :用户描述:主目录:登陆shell

  表1列出了系统在安装过程中创建的标准用户,表中的内容和/etc/passwd文件的描述是一致的。

 

  表2列出系统安装过程中创建的标准用户组,和/etc/group文件是一致的:

UID : 每个用户必须被分配一个userid,”0”为root保留ID.

  Linux使用不可逆的加密算法如DES来加密口令,由于加密算法是不可逆的,所以从密文是得不到明文的。但问题在于,/etc/passwd文件是全局可读的,加密的算法是公开的,如果有恶意用户取得了/etc/passwd文件,他就可以穷举所有可能的明文通过相同的算法计算出密文进行比较,直到相同,于是他就破解了口令。因此,针对这种安全问题,Linux/Unix广泛采用了“shadow(影子)”机制,将加密的口令转移到 /etc/shadow文件里,该文件只为root超级用户可读,而同时/etc/passwd文件的密文域显示为一个x,从而最大限度减少密文泄露的机会。

         1-99为系统保留,分配给系统预定义帐号.HP-UX10.20支持2 147 483

  /etc/shadow文件的每行是8个冒号分割的9个域,格式如下:

  1. HP-UX10.20以前支持不大于60000个.

  username: passwd: lastchg: min: max: warn: inactive: expire: flag

   www.2cto.com  

  其中:

系统中有一类用户称为伪用户(psuedo
users),这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户如表8-1所示。

  lastchg:表示从1970年1月1日起到上次修改口令所经过的天数。

表8-1 /etc/passwd文件中常见的伪用户

  min:表示两次修改口令之间至少经过的天数。

伪  用  户

  max:表示口令还会有效的最大天数,如果是99999则表示永不过期。

含     义

  warn:表示口令失效前多少天内系统向用户发出警告。

bin

  inactive:表示禁止登陆前用户名还有效的天数。

拥有可执行的用户命令文件

  expire:表示用户被禁止登陆的时间。0

sys

  flag:无意义,未使用。

拥有系统文件

  启用影子口令

adm

  RedHat Linux缺省安装shadow,如果你发现你的系统的/etc/passwd文件仍然可以看到密文,就说明你没有启用shadow。可以执行pwconv来启用shadow。

拥有帐户文件

  在RedHat Linux 7.1中,影子工具包(shadow utils)包含了几个工具支持以下功能:

uucp

  传统口令与影子口令之间的转换工具:pwconv、pwunconv。

UUCP使用

  验证口令,组和相应的影子文件:pwck、grpck。

lp

  以符合工业标准的方法增加、删除和修改用户帐户:useradd、usermod、userdel。

lp或lpd子系统使用

  以符合工业标准的方法增加、删除和修改用户组:groupadd、groupmod、groupdel。

nobody

  以符合工业标准的方法管理文件/etc/group。

NFS使用

  无论系统是否启用shadow机制,上述工具都可以正常使用。

  除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron,
mail, usenet等,它们也都各自为相关的进程和文件所需要。

  更改Linux口令的最短长度

 

  Linux系统默认最短口令长度为5个字符,这个长度不足以保证口令的健壮性,应该改为最短8个字符,编辑/etc/login.defs文件,在此文件中,将

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:

  PASS_MIN_LEN  5

  

  改为:

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:

  PASS_MIN_LEN  8

 

  表1

http://www.bkjia.com/Linuxjc/551359.htmlwww.bkjia.comtruehttp://www.bkjia.com/Linuxjc/551359.htmlTechArticleLinux中/etc/passwd和/etc/shadow文件格式介绍
/etc/passwd 是存放用户的地方,内容如下: www.2cto.com root: x : 0 : 0 :
root : / root : / bin/bash bin:x:1:1:bin:/…

  User Uid gid Directory shell
Root 0 0 /root /bin/bash

  Bin 1 1 /bin

  Daemon 2 2 /sbin

  Adm 3 4 /var/adm

  Lp 4 7 /var/spool/lpd

  Sync 5 0 /sbin /bin/sync

  shutdown 6 0 /sbin /sbin/shutdown

  Halt 7 0 /sbin /sbin/halt

  Mail 8 12 /var/spool/mail

  News 9 13 /var/spool/news

  Uucp 10 14 /var/spool/uucp

  Operator 11 0 /root

88bf必发娱乐,  Games 12 100 /usr/games

  Gopher 13 30 /usr/lib/gopher-data

  ftp 14 50 /home/ftp

  Nobody 99 99 /

  表2

  Group Gid Members

  Root 0 Root

  Bin 1 root,bin,daemon

  Daemon 2 root,bin,daemon

  Sys 3 root,bin,adm

  Adm 4 root,adm,daemon

  Tty 5

  Disk 6 Root

  Lp 7 daemon,lp

  Mem 8

  Kmem 9

  Whell 10 Root

  Mail 12 Mail

  News 13 News

  Uucp 14 Uucp

  Man 15

  Games 20

  Gopher 30

  Dip 40

  ftp 50

  nobody 99

  Users 100

  floppy 19

您可能感兴趣的文章: