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文件里还有一些账号有着特殊的用途,如bin、daemon、adm、nobody等等,它们的口令大部分用(x)号表示,代表他们不能在都能录时使用。
2、/etc/shadow文件
为了增强系统的安全性,Linux系统还可以为用户提供MD5和Shadow安全密码服务。如果在安装 Linux 时在相关配置的选项上选中了MD5和Shadow服务,那么将看到的/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,简称GID。GID用于标识一个组,和UID一样,应保证GID的唯一性。
User_list:用户组列表,每个用户用逗号‘,’分隔。本字段可以为空,如果字段为空表示用户组为GID的用户名。如果一个用户属于/etc/passwd中所指定的某个组,但没有出现在/etc/group文件相应的组中,那么应该以/etc/passwd文件中的设置为准。
例:
root:x:0:root,linuxsir
上面记录表示:用户组root;x是密码段;GID是0;root用户组下包括root、linuxsir以及GID为0的其他用户(可以通过/etc/passwd查看)。
4./etc/gshadow文件的每一行,以“:”分隔成4个字段。
1. 用户组名
2. 用户组密码
3. 用户组管理员的名称
4. 支持的账号名称
--------------------------------------------------------
etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码;
/etc/gshadow 格式如下,每个用户组独占一行;
groupname:password:admin,admin,...:member,member,...
第一字段:用户组
第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;
第三字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;
第四字段:组成员,如果有多个成员,用,号分割。
5./etc/login.defs
/etc/login.defs 是设置用户帐号限制的文件。该文件里的配置对root用户无效。/etc/login.defs 文件用于在Linux创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。
需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。
如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs
6./etc/default
]$ cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
GROUP=100
HOME=/home 主目录放在什么目录下
INACTIVE=-1 帐号是否过期
EXPIRE= 帐号终止日期
SHELL=/bin/bash 默认使用哪个shell
SKEL=/etc/skel 模板目录,骨架目录
CREATE_MAIL_SPOOL=yes 是否创建邮箱文件