用户和组的相关配置文件

  用户,是计算机识别使用者身份的一种唯一使用标识。

而现实生活中为了方便人类记忆使用等,用户名往往是用便于人类识别的语言来记录的。但事实上计算机并不对人类语言敏感,所以有必要把人类语言跟机器语言对应上。于是,linux给每一个创建用户提供了一个UID。当使用用户名登录时,系统换自动对应UID来识别该用户身份。

而用户名与UID的对应信息就储存在一个名称解析库中。

/etc/passwd

         用户名的名称解析库:/etc/passwd记录了用户名与相应的UID的对应关系以及一些额外的附加信息。

Cat /etc/passwd会看到各用户名的详细信息如下:

用户和组的相关配置文件

每一行都是一个用户的完整信息,并且被‘:分割成7个字段。从左至右依次是:

用户名:密码占位符:UIDGID:用户描述信息:家目录:默认shell

其中第二个字段密码占位符比较特殊。刚开始时这个位置确实是记录密码的,但由于每一个用户对/etc/passwd都有读取权限,所以并不安全。后来,系统对此做了优化,把密码“转移”,只留下了占位符X

/etc/shadow

       刚才提到为了安全起见,/etc/passwd中的密码字符串被“紧急转移,那么转移到哪里去了呢,就是这里/etc/shadow。所以这个文件就只有万能管理员root有读取权限。如此一来“组织就安全多了。同样,我们cat一下看看:

用户和组的相关配置文件用户和组的相关配置文件

       看到了吧,那一串长长的奇怪的字符就是密码了。看不懂的原因是因为做了单向加密。除了一堆看不懂的字符串之外,还有一些密码的期限信息。同样的,使用分隔,分隔出了9个字段。自左向右依次是:

       用户名:加密的密码:最后一次修改时间:密码的最小年龄:密码的最大年龄:密码警告时段:密码禁用期:账户过期日期:保留字段

加密的密码字段又被‘$’分割成了三段:

第一段:‘$6’为加密算法,数字1-6分别代表了六种加密算法:md5sha1sha224sha256sha384sha512

第二段:有八位字符,是一串随机数,被称作salt,盐。

第三段:才是真正的密码转换过来的。

如果密码字段有*或!,表示用户将无法使用密码登陆(但可以使用其他方式登录系统)。此字段也可为空,此时认证为特定的登录名时,不要求密码。然而,一些读取 /etc/shadow文件的应用程序,在密码字段为空时,可能决定禁止任何访问。

最后一次修改时间:代表的是从linux元年197011日算起到用户最后一次修改密码的时间,若设置为0表示用户应该在下次登录系统时修改密码。空字段表示密码年龄功能被禁用。

密码的最小年龄:代表用户修改一次密码后要间隔多长时间才允许再次修改,空字段或0代表没有最小密码年龄。

最大密码年龄:是代表改一个密码经过多长时间后必须再次修改,空字段表示没有限制。如果最大密码年龄小于最小密码年龄,用户将不能修改此密码。

密码警告时段:密码过期之前,提前警告用户的天数。空字段或0表示没有密码警告期。

密码禁用期:密码过期后,仍然接受此密码的天数(在此期间,用户应该在下次登录时修改密码,强制要求。),过了这个期限,使用用户的当前密码将无法登陆。空字段表示不会强制密码过期。

账户过期日期:表示从197011日开始算起的天数。超过这个期限账号无法使用密码登录。即便其密码没有过期该目录也无法使用。

QQ截图20161023205118.png

/etc/group

         Linux是多用户,多任务的操作系统。一个系统上往往会有多个用户,所以为了方便管理这些用户,linux为用户提供了用户组的管理机制。同样的/etc/group就是用来存放组名解析和组的一些有关信息。

用户和组的相关配置文件

         还是用分隔,分隔出了四个字段。分别是:

                   组名:组密码:GID:用户列表

         组密码依然是使用的占位符X,真正的密码已经“转移/etc/gshadow

         GID中存放的是对应组名的组密码。

         用户列表显示了该组中的组成员。

/etc/gshadow

用户和组的相关配置文件

         用户组密码的相关信息。分隔出了四个字段:

                   组名:加密的密码:管理员:成员

         加密了的密码:此密码用于不是此组成员的用户获取此组的权限。此字段可以为空,此时,只有组成员可以获取组权限。 以叹号开始的密码字段意味着密码被锁定。该行的剩余字符表示锁定之前的密码。

         管理员:必须是一个逗号分隔的用户名列表。管理员可以更改组密码和成员。

         成员:以此组为附加组的用户,必须是一个逗号分隔的用户名列表。成员可以免密码访问组。

/etc/login.defs

         /etc/login.defs定义了一些管理用户和用户组时的默认配置。

例如:定义了创建用户时默认会为该用户创建一个邮箱,邮件的存储路径为/var/spool/mail

用户和组的相关配置文件

定义了用户密码的期限信息。

用户和组的相关配置文件

创建用户不指定UID时,系统默认指定UID的范围:

系统用户UID201-999

普通用户UID1000-60000

用户和组的相关配置文件

创建用户时是否为其创建一个家目录:

Yes,是

No,否

用户和组的相关配置文件

删除一个用户时,若其用户组中没有其他用户时,是否把该用户组一并删除:

Yes,是

No,否

用户和组的相关配置文件

创建密码时使用的加密算法:

SHA521

用户和组的相关配置文件

/etc/default/useradd

         从目录名就可以看出,此文件是关于创建用户时的一些默认配置信息。

用户和组的相关配置文件

GROUP=100:当不创建似有组为主组时,使用user组作为主组。

HOME=/home:用户家目录的默认创建位置,默认会在/home创建一个与用户同名的家目录。

INACTIVE=-1:是否启用密码禁用期,-1代表不起用。

EXPIRE=:账号终止日期,不设置代表不启用。

SHELL=/bin/bash:默认使用的shell类型。

SKEL=/etc/skel:用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的。

用户和组的相关配置文件

CREATE_MAIL_SPOOL=yes:默认为新创建的用户添加邮箱位置。会在/var/spool/mail下为用户创建一个同名的邮箱。

原创文章,作者:Hulk,如若转载,请注明出处:http://www.178linux.com/53729

(0)
HulkHulk
上一篇 2016-10-23 18:05
下一篇 2016-10-23 19:22

相关推荐

  • 用户管理和组管理

         Linux是一个多用户多任务的系统 ,因此学习用户管理和组管理,对我们工作和学习有很大的帮助。用户是你登录这个操作系统的凭证,因此用户的创建和修改,删除是用户管理的基本工作,所以你掌握这些,对你的工作有很好的帮助。 用户账号管理 /etc/passwd username:x: UId:gid:comment:…

    Linux干货 2016-08-10
  • 计算机的组成及其功能简述

    1、计算机的组成 (1)运算器、控制器、寄存器、缓存 –> CPU,Central Processing Unit (2)存储器 –> Memory (3)输入设备 –> Keyboard、Mouse and so on (4)输出设备 –> Displayer and so on (5…

    Linux干货 2016-09-19
  • linux 用户与组管理详解

    ##用户与组的分类 Linux系统对用户分配如下: -系统管理员:root -普通用户:普通用户分为以下两种           系统用户:系统用户通常是不可登陆的,执行某些服务及进程的帐号           登录用户:一般用户,    …

    Linux干货 2017-04-05
  • N22期-第6周作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysint /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目…

    Linux干货 2016-10-09
  • 马哥linux0811作业内容

    总结位置变量$1,$2.. $10,$11…MAX 位置变量的含义分别就是代表第几个参数,$1就是脚本运行的第一个参数.$2就是第二个.以此类推.直到最后. $*,$@,$# 区别 特殊变量: $0 : 表示命令本身 $#:传递给命令的参数个数 $*:传递给脚本的所有参数(所有参数是一个整体的字符串) $@:传递给脚本的所有参数(各个参数都是独立…

    Linux干货 2016-08-19
  • 安装命令及源码安装

    rpm命令  –q:查询 -qa:查询系统内所有已安装的包 -qf:查询文件来自于那个安装包 -ql:安装包内的文件 -qp:与其他命令配合可以查询未安装包的信息,但要跟完整的安装包名 -qi:查看报的详细信息 -qc:查询程序的配置文件 -qd:查询程序的文档 -qR:查询安装包依赖的程序 –scripts:查看安装包内的脚本 -q …

    Linux干货 2016-08-26