linux用户和组的配置文件_修改用户配置文件默认路径

linux用户和组的配置文件_修改用户配置文件默认路径用户和用户组配置文件/etc/passwd/etc/shadow/etc/group/etc/gshadowuseradd参考文件/etc/login.defs文件_操作会影响到linux系统的哪些配置文件?以你的学号用户及所在的班级用户组为例,简

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Linux用户和用户组配置文件知识详解

在这里插入图片描述

用户和用户组配置文件

  Linux的灵活与安全性是通过一个个的配置文件来完成的。用户管理中非常重要的三个配置文件:存放账号的文件/etc/passwd、存放密码的文件/etc/shadow、存放用户组信息的文件/etc/group。用户与用户组的创建、删除,修改等操作就是针对这几个配置文件的操作。

/etc/passwd

  /etc/passwd是系统识别用户的一个文件,/etc/passwd类似于一个花名册,系统所有的用户都在这里有登录记载。

  (当我们以seashorewang这个账号登录时,系统首先会查阅/etc/passwd文件,看是否有seashorewang这个账号,然后确定seashorewang的UID,通过UID来确认用户和身份,如果存在则读取/etc/shadow影子文件所对应的seashorewang密码;如果密码核实无误则登录系统,读取用户的配置文件。)

  Linux系统中的每个用户都在/etc/passwd文件中有一个与之对应的记录行,记录了该用户的一些基本信心。/etc/passwd文件对任何用户都是可读的。

  在/etc/passwd中,每一行都表示一个用户的信息,一行有7个部分,每个部分用“:”号分割。每个字段的具体内容与含义如下:

在这里插入图片描述

第一字段:用户名

  用户名的字符串一般不超过8个字符,且由大写字母、小写字母和数字组成,用户名中不能包含特殊字符,如“:”,因为冒号在/etc/passwd文件中代表分隔符,并且不建议使用“.”“—”和“+”。

第二字段:口令(密码)

  在/etc/passwd中看到的密码是一个x,是因为密码被映射到/etc/shadow文件中了,这是考虑Linux系统的安全性。

第三字段:UID

  也就是用户ID,是标示用户的一个整数,一般情况下与用户名是一一对应的。如果几个用户名对应同一个UID,Linux内核会将其解析成同一个账号,但它们可以拥有不同的口令,登录之后使用不同的主目录和登录不同的Shell。用户名是给人看的,Linux内核真正识别的是UID。通常UID的取值范围是0~65 535,新的版本账号最多可以达到4 294 967 295个,这个最大值可以在/etc/login.defs查到。0为超级账户root的ID;1~99由系统保留,由系统的distribution自行创建系统账号;100~499为用户由系统账号需求时,可以使用的账号UID;普通账号的ID从500开始。

第四字段:GID

  记录用户所属用户组的ID简称GID,GID对应着/etc/group中的一条记录。

第五字段:用户名全称

  此字段是可选的,可以不设置。这个字段没有实际性的意义,只是起到了解释与标注的作用,其中除了用户名全称还可以存储姓名、地址、电话号码等信息。使用 finger 命令修改的信息保存到这个地方。

第六字段:主文件夹

  用户的主目录所在的位置;root账户的主文件夹是/root,当root登录后会立刻登录到/root目录。如果你有个账号的使用空间特别大,你想要将该账号的主文件夹移动到其它的硬盘,就可以修改这个字段,及主文件夹。

第七字段:用户所用Shell的类型

  用户登录之后需要启动一个进程,负责将用户的操作传递给内核,这个进程就是用户登录到系统后的命令解释器或命令翻译程序,也就是Shell,Shell是用户与Linux系统之间交互的接口。seashorewang和root都用的是BASH,所以设置为/bin/bash。

  使用pwd命令查看root账户和seashorewang账户的根目录

在这里插入图片描述

说明:“~”代表root的根目录。

/etc/shadow

  /etc/shadow文件是/etc/passwd的影子文件,二者之中的记录行是一一对应的。/etc/shadow文件不是由/etc/passwd产生,而是由 pwconv 命令根据/etc/passwd文件中的数据字段生成。这两个文件是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限为:/etc/shadow的权限不能随便改为其它用户可读,这样做是很危险的。如果发现这个文件的权限变成其他用户组或用户可读了,要进行检查和修改,以防系统安全问题的发生;如果普通用户查看这个文件时,应该提示权限不够,什么也看不到。

在这里插入图片描述

说明1: ls –l /etc/shadow时发现,其权限为空,即谁都不能对其进行读、写、执行的操作,所以使用cat /etc/shadow查看文件内容时,提示权限不够。
说明2: 这个文件的权限为空,除了万能的“天神”root可以对其进行操作,其它任何人都不能对其进行操作。

  /shadow中的内容以“:”进行分割,共分为 9 个字段,具体含义如下:

在这里插入图片描述

第一字段:用户名

  在/etc/shadow中,用户名和/etc/passwd是相同的,这样可以把passwd和shadow中用的用户记录联系在一起;这个字段是非空的;必须保证与 /etc/passwd 完全相同。

第二字段:密码(已被加密)

  这个字段是真正的用户密码,是/etc/passwd密码的迁移,如果有些用户在这段是x或者其它特殊字符,表示该用户不能登录到系统;这个字段是非空的。

第三字段:上次修改口令的时间

  表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间对不同的系统可能不一样,可以通过 passwd 命令修改用户的密码,然后查看/etc/shadow中此字段的变化。

在这里插入图片描述
在这里插入图片描述

第四字段:两次修改口令间隔最少的天数(密码不可变更的时间)

  如果设置为0,则禁用此功能,也就是可以随时修改密码。如果非0,则表示用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过 /etc/login.defs 文件定义中获取, PASS_MIN_DAYS 中由定义。

第五字段:两次修改口令间隔最多的天数(密码需要重新更改的天数)

  密码需要重新更改的天数,指的是相对于第三个字段,这个能增强管理员管理用户口令的时效性,应该说增强了系统的安全性;如果是系统默认值,是在添加用户时由 /etc/login.defs 文件定义中获取, PASS_MAX_DAYS 中由定义。

第六字段:提前多少天警告用户口令将过期

  密码需要更改期限前的警告天数,是指相对于第五个字段,当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由 /etc/login.defs 文件定义中获取, PASS_WARN_AGE 中由定义。

第七字段:密码过期后的账号宽限时间

  在口令过期之后多少天禁用此用户,是相对于第五个字段来说的。此字段表示用户口令作废多少天后,系统会禁用此用户,即系统会不再让此用户登录,也不会提示用户过期,是完全禁用。

第八字段:用户过期日期

  这个字段是相对第三个字段而言的。此字段指定了用户作废的天数,如果这个字段的值为空,账号永久可用;如果这个账户在此字段规定的日期之后,账号将无法使用。

第九字段:保留字段

  目前为空,以备将来Linux发展之用。

/etc/group

  具有某种共同特征的用户集合起来就是用户组(Group),用户组配置文件主要有 /etc/group/etc/gshadow,其中 /etc/gshadow/etc/group 的加密信息文件。

  /etc/group文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。

  用户分组是Linux系统对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中,此文件格式类似于/etc/passwd文件。

  如果某个用户下有对系统管理最重要的内容,最好让用户拥有独立的用户组,或者使把用户下的文件权限设置为完全私有,另外root用户组一般不要轻易将普通用户加入进去。

  /etc/group中的内容以“:”进行分割,共分为4个字段,具体含义如下:

在这里插入图片描述

第一字段:用户组名称

  用户组的名称,命名规则与UID相同。

第二字段:用户组密码

  x表示密码已经迁移,其密码迁移到/etc/gshadow中。

第三字段:GID

  用户组的唯一标示,计算机不识别组名,只能识别组的ID,GID是一个整数,被系统内部用来标识组;/etc/passwd中的GID来源于/etc/group。

  GID和UID类似,是一个正整数或0,GID从0开始,GID为0的组是root用户组;系统会预留一些靠前的GID给系统虚拟用户(伪装用户)使用;每个系统预留的GID有所不同。查看系统添加用户组默认的GID范围应该查看 /etc/login.defs 中的 GID_MINGID_MAX 值。

第四字段:用户列表

  每个用户之间用“,”号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名。一个用户可以加入多个组,加入组,其实就是将用户名写到组的最后一个字段而已。

  将seashorewang用户加为root用户组,查看/etc/passwd和/etc/group中的记录。

在这里插入图片描述

  说明:seashorewang用户在/etc/passwd中的记录显示,seashorewang用户默认的GID为500,而500的GID在/etc/group中查到的是seashorewang用户组;seashorewang用户在/etc/group中的相关记录里,看到seashorewang用户组的GID为501,而seashorewang用户归属为root、seashorewang用户组。

/etc/gshadow

  /etc/gshadow是/etc/group的加密资讯文件,用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。(比如不想让一些非用户组成员永久拥有用户组的权限和特征,这时可以通过密码验证的方式来让某些用户临时拥有一些用户组特征,这时就要用到用户组密码。)

  /etc/gshadow中的内容以“:”进行分割,共分为4个字段,具体含义如下:

在这里插入图片描述

第一字段:用户组

  用户组的名称,命名规则与UID相同。

第二字段:用户组密码

  这个字段可以是空的或!,如果是空的或有!。表示没有密码。

第三字段:用户组管理者

  这个字段可以为空,如果有多个用户组管理者,用“,”号分割。

第四字段:组成员

  如果有多个成员,用“,”号分割。

useradd参考文件

  新建的账号具有很多初始属性,比如说初始Shell为/bin/bash,默认的根目录都在/home目录下,等等。这些是可以通过useradd –D来调出useradd方法的默认值。

  (1) GROUP=100设置的是默认的用户组,即默认创建的用户都属于users组;
  (2) HOME=/home表示默认的主文件夹的所在目录,用户的主文件夹通常是与账号名相同的名称,这个目录会放置到/home/下面;
  (3) INACTIVE=-1表示密码的实效日,也就是shadow文件的第7列。如果为0代表立即失效,如果为-1代表永久有效;
  (4) EXPIRE=账号失效日,也就是shadow文件的第8列;
  (5) SHELL=/bin/bash指的是默认的Shell;
  (6) SKEL=/etc/skel用户文件夹的内容数据参考目录,新增用户的各项数据就是从该文件中复制过去的。
  (7) CREATE_MAIL_SPOOL=yes是否主动帮助用户创建邮件信箱。

/etc/login.defs文件

  /etc/login.defs文件中详细描述了关于用户的各项设置。
用vim /etc/login.defs打开文件,内容如下:

  (1) MAIL_DIR /var/spool/mail:用户默认邮箱放置的目录;
  (2) PASS_MAX_DAYS 99999:/etc/shadow中的第5列,多长时间更改密码,99999计算下来大约是273年,其实也就是永久有效的意思;
  (3) PASS_MIN_DAYS 0:/etc/shadow中的第4列,多长时间内不能修改密码;
  (4) PASS_MIN_LEN 5:密码最短几位,也就是密码的最短长度;
  (5) PASS_WARN_AGE 7:/etc/shadow中的第6列,密码过期前提前几天警告用户必须修改密码;
  (6) UID_MIN 500:最小用户ID,也就是最小UID;
  (7) UID_MAX 60000:用户能使用的最大UID;
  (8) GID_MIN 500:最小用户组ID,也就是最小GID;
  (9) GID_MAX 60000:用户能使用的最大GID;
  (10) CREATE_HOME yes:是否创建用户的根目录,yes代表创建;
  (11) UMASK 077:创建用户主文件夹的UASK。
  (12) USERGROUPS_ENAB yes:使用usedel删除用户的时候是否删除初始用户组;
  (13) ENCRYPT_METHOD SHA 512:密码是否经过加密机制处理。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

今天的文章linux用户和组的配置文件_修改用户配置文件默认路径分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82838.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注