passwd、shadow、group文件详解

来源:互联网 发布:阿里云发布域名网站 编辑:程序博客网 时间:2024/05/26 12:57
1、/etc/passwd文件
文件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目录下,并且和用户名同名。
Shell用户登录后执行的命令
一般来说,这个命令将启动一个shell程序。
    passwd文件里还有一些账号有着特殊的用途,如bindaemonadmnobody等等,它们的口令大部分用(x)号表示,代表他们不能在都能录时使用。

2、/etc/shadow文件
    为了增强系统的安全性,Linux系统还可以为用户提供MD5Shadow安全密码服务。如果在安装 Linux 时在相关配置的选项上选中了MD5Shadow服务,那么将看到的/etc/passwd文件里的passwd项上无论是什么用户,都是一个“x”,这就表示这些用户都登录不了;系统其实是把真正的密码数据放在了/etc/shadow文件里。为保证系统用户的安全性,/etc/shadow文件权限应设置为‘-rw-------’或‘-r--------’,即只能以root用户来浏览。
    passwd文件格式类似,shadow文件由多条记录组成,每条记录占一行,记录一个用户账号的密钥信息。每行记录由9个字段组成,字段间用冒号‘:’隔开,各个字段用途如下:
1、账号名称:
第一个字段是账号,必须与/etc/passwd相同。
2、密码:
这个字段才是真正的密码,该密码经过编码。假如此字段为空,则表示该账号不需要密码就可以登录。如果密码栏的第一个字符为‘*’或者是‘!’,表示这个账号不能用来登录。可以使用这个方法来开启或关闭一个账户的登录权限。
另外‘!!’两个叹号表示这个账号目前没有密码,也不能用于登录,通常为一些系统账号。
3、最近更改密码的日期:
这个字段记录了‘更改密码那一天’的日期。该字段使用 1970 年以来的总日数设定
4、密码不可被更改的天数:
第四个字段记录了这个账号的密码需要经过多少天才允许被更改,如果是0,则表示密码可随时改动。
5、密码需要重新更改的天数:
该字段表示拥护必须在这个时间内重新设置密码,否者这个账号将暂时失效。如果该字段的值为99999,表示没有要求用户指定天数内重新更改密码。
6、密码需要更改期限前的警告期限
当账号的密码失效期快到的时候,就是上面‘必须变更密码’的那个时间,系统会根据这个字段的设定,发出‘警告’信息,提醒用户再过n天后密码失效。
7、密码过期的恕限时间:
如果用户过了警告期限仍没有重新设定密码,致密码失效,仍可以使用这个失效密码在n天内登录系统。若再这个期间仍没更改密码,则账号失效。
8、账号失效日期:
这个账号在此字段规定的日期之后,将无法再使用。该字段与第3个字段一样,使用 1970 年以来的总日数设定
9、保留:
最后一个字段是保留的,看以后有没有新功能加入。

3、/etc/group文件
/etc/group文件保存了系统中所有组的名称,以及每个组中的成员列表。文件中每一行表示一个组,由3个冒号分隔开的字段组成。如:
Group_name:Password:Group_ID:User_list
以下是这4个字段的含义:
Group_name 用户组名称
Password用户组密码,和passwd文件一样,如果口令字段为x的话,表示有一个/etc/gshadow用于存放组口令。但一般来说,组口令很少用到,因此不必太在意这个字段。即使该字段为空,也不需要担心安全问题。
Group_ID用户组ID,简称GIDGID用于标识一个组,和UID一样,应保证GID的唯一性。
User_list用户组列表,每个用户用逗号‘,’分隔。本字段可以为空,如果字段为空表示用户组为GID的用户名。如果一个用户属于/etc/passwd中所指定的某个组,但没有出现在/etc/group文件相应的组中,那么应该以/etc/passwd文件中的设置为准
例:
root:x:0:root,linuxsir
上面记录表示:用户组rootx是密码段;GID0root用户组下包括rootlinuxsir以及GID0的其他用户(可以通过/etc/passwd查看)