> Linux教程 > linux基础 >

linux中/etc/passwd与/etc/shadow文件详解

linux中的二个重要文件,/etc/passwd与/etc/shadow,分别保存着用户信息、用户密码信息。

1,首先,介绍下passwd文件
passwd文件存放在/etc目录下。这个文件存放着所有用户帐号的信息,包括用户名和密码,因此,它对系统来说是至关重要的。
查看该文件:cat /etc/passwd
Passwd文件由许多条记录组成,每条记录占一行,记录了一个用户帐号的所有信息。每条记录由7个字段组成,字段间用冒号“:”隔开,其格式如下:
username:password:User ID:Group ID:comment:home directory:shell

字段含义:
username 用户名
它唯一地标识了一个用户帐号,用户在登录时使用的就是它。
password 该帐号的口令
passwd文件中存放的密码是经过加密处理的。Linux的加密算法很严密,其中的口令几乎是不可能被破解的。盗用帐号的人一般都借助专门的黑客程 序,构造出无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。因此,建议不要使用生日、常用 单词等作为口令,它们在黑客程序面前几乎是不堪一击的。特别是对那些直接连入较大网络的系统来说,系统安全性显得尤为重要。
User ID 用户识别码,简称UID。 
Linux系统内部使用UID来标识用户,而不是用户名。UID是一个整数,用户的UID互不相同。
Group ID 用户组识别码,简称GID。
不同的用户可以属于同一个用户组,享有该用户组共有的权限。与UID类似,GID唯一地标识了一个用户组。
comment 这是给用户帐号做的注解
它一般是用户真实姓名、电话号码、住址等,当然也可以是空的。
home directory 主目录
这个目录属于该帐号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root帐号的主目录是/root,其他帐号的家目录都在/home目录下,并且和用户名同名。
login command 用户登录后执行的命令
一般来说,这个命令将启动一个shell程序。例如,用bbs帐号登录后,会直接进入bbs系统,这是因为bbs帐号的login command指向的是bbs程序,等系统登录到bbs时就自动运行这些命令。

系统帐号
系统中还有一些默认的帐号,如daemon、bin等。这些帐号有着特殊的用途,一般用于进行系统管理。这些帐号的口令大部分用(x)号表示,代表它们不能在登录时使用。

2,其次是shadow文件
为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装 Linux 时在相关配置的选项上选中了MD5和Shadow服务,那么将看到的/etc/passwd文件里的passwd项上无论是什么用户,都是一个“x”,这就表示这些用户都登录不了;系统其实是把真正的密码数据放在了/etc/shadow文件里。

/etc/shadow文件只能以root身份来浏览。
在系统设计时,/etc/passwd文件是任何人都可以读的,为了安全起见,所以只能以root身份来查看了。

3,相关命令
pwconv
根据/etc/passwd文件生成/etc/shadow。它把所有口令从/etc/passwd移到/etc/shadow中。
pwunconv
将/etc/shadow中的信息尽可能地恢复到/etc/passwd。

本篇文章详细介绍了linux系统中与用户信息有关的二个文件:/etc/passwd & /etc/shadow,一个用于保存用户及权限信息,一个用于保存密码。
建议大家好好研究下这二个文件的构成与内容,对日后的linux系统管理与运维,是很有帮助的。

(责任编辑:IT)