学习/etc/group /etc/passwd 和 /etc/shadow

  • /etc/passwd 管理用户信息的系统文件
  • /etc/shadow 管理用户密码信息的系统文件
  • /etc/group 管理用户组信息的系统文件

1./etc/group 

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。

每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

文件内容内容解释举栗

cat /etc/group

  • root:x:0:
  • daemon:x:1:
  • bin:x:2:
  • sys:x:3:
  • adm:x:4:roaddb

 组名:口令:组标识号:组内用户列表

组名:组名是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复

口令:(即密码段)口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。

组标识号(GID):组标识号与用户标识号类似,也是一个整数,被系统内部用来标识组。

组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

以root:x:0:aa为例:

用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括aa以及GID为0的其它用户。

2./etc/passwd

文件内容内容解释

cat /etc/passwd

  • root:x:0:0:root:/root:/bin/bash
  • daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
  • bin:x:2:2:bin:/bin:/usr/sbin/nologin
  • sys:x:3:3:sys:/dev:/usr/sbin/nologin
  • sync:x:4:65534:sync:/bin:/bin/sync
  • games:x:5:60:games:/usr/games:/usr/sbin/nologin
  • man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
  • lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
  • mail:x:8:8:mail:/var/mail:/usr/sbin/nologin

 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

用户名:通常长度不超过8个字符,由大小写字母数字组成。登录名中不能有冒号(:)、点字符(.),并且不使用连字符(-)和加号(+)打头。

口令:加密的密码,一般只存放一个特殊的字符,例如“x”或者“*”。

用户标识号(UID):是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的,如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。UID的取值范围是0-65535。0是超级用户root的标识号,1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

组标识号(GID):记录用户所属的用户组。它对应着/etc/group文件中的一条记录。

注释性描述(users):存放的是一段任意的注释性描述文字,用做finger命令的输出。

主目录(home_directory):用户的起始工作目录,它是用户在登录到系统之后所处的目录。

登录Shell(Shell):用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。

Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(BourneShell), csh(CShell), ksh(KornShell), tcsh(TENEX/TOPS-20typeCShell), bash(BourneAgainShell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。

3./etc/shadow

shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:

-r-------- 1 root root 1.5K 10月 16 09:49 /etc/shadow

文件内容内容解释

sudo cat /etc/shadow

  • root:*:18057:0:99999:7:::
  • daemon:*:18057:0:99999:7:::
  • bin:*:18057:0:99999:7:::
  • sys:*:18057:0:99999:7:::
  • sync:*:18057:0:99999:7:::
  • games:*:18057:0:99999:7:::

/etc/shadow 文件的内容包括9个字段

用户名:密码:上次修改密码的时间:两次修改口令间隔最少的天数:两次修改口令间隔最多的天数:提前多少天警告用户口令将过期:在口令过期之后多少天禁用此用户:用户过期日期:保留字段

用户名:在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;

密码(已被加密):如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;

上次修改口令的时间:这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;

两次修改口令间隔最少的天数:如果设置为0,则禁用此功能,也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;

两次修改口令间隔最多的天数:这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;

提前多少天警告用户口令将过期:当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;

在口令过期之后多少天禁用此用户:此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;

用户过期日期:此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;

保留字段:目前为空,以备将来Linux发展之用;

原文地址:https://www.cnblogs.com/mianbaoshu/p/12068768.html