详解Linux下用户和组的配置文件

本文将介绍Linux下用户和组的概念及相关配置文件,通过本文,能更好的认识/etc/pssswd ,/etc/group,以及UID、GID的概念,最后将通过修改用户配置文件来实现用户和组的管理工作,对Linux的多任务、多用户有一个更清楚的认识。

一、用户(USER)

在LInux上用户的管理工作是通过修改相关的配置文件来实现的,在日常的工作中主要包含对用户的查询、增加、修改和删除,由此可见,修改配置文件对用户管理的重要性,下面将对用户(USER)的配置文件来具体说明。

用户的配置文件包括/etc/passwd和/etc/shadow文件,这两个文件是用来记录用户的密码、UID、GID等信息的,但密码是以加密的形式来存放的,且加密算法本身会产生雪崩效应:即初始条件的微小变化,将引起结果的巨大变活,所以想要破解密码基本是不可能的,下面将详细说明用户组的两个配置文件的区别:

1、/etc/passwd内容的详解:

在/etc/passwd中,每一行都代表的是一个用户的信息,一行有7段,用:来分割,如下所示:

root:x:0:0:root:/root:/bin/bash

        第一字段:用户名(也被称为登录名);在上面的例子中,我们看到这个用户的用户名是root,即管理员; 
        第二字段:口令;我们看到的是一个x,表示其为密码占位符,真实的密码已被保存到/etc/shadow 文件中; 
        第三字段:UID ;用户的用户ID号; 
        第四字段:GID;用户组的ID号; 
        第五字段:用户名全称;
        第六字段:用户的家目录所在位置;
        第七字段:用户所用SHELL 的类型,由上可见系统默认的是bash;

用户的UID:

UID即为用户在系统中的ID号,众所周知,Linux系统识别用户不是看用户名,而是看它自身的ID号来识别,每个用户的ID号都是唯一的,系统用户的UID从0开始,到65535,都可以分配用户,但他们之间是有区别的。我们的Linux系统分为管理员和普通用户两种,普通用户为1-65535,普通用户又分为系统用户和登录用户,ID号分别为1-,999和1000-65535。

上面说过,每个用户的UID号都是唯一的,把几个用户共用一个UID是危险的,比如我们上边说的root用户,如果把普通用户的UID改为0,和root共用一个UID,这事实上就造成了系统管理权限的混乱,如我们想用root权限,可用su命令实现,但绝不可以让一个用户和root分享同一个UID。

2、/etc/shadow内容的详解:

shadow,顾名思义,是passwd的影子文件,/etc/shadow文件包括用户、被加密的密码及用户的有限期限等,这个文件只有root权限才可以读取和操作,如下:

root:$6$6aHonQcR$Dt8.0GnvD3IO5cyVKDvRZLb8/zQMRz5.o6dflIsR/3E1Py1kCSMJ5P2Xga8Deh0ZTQxesQd5wgdyYWTOCvvcv0:17086:0:99999:7:::

       第一字段:用户名(也被称为登录名),和/etc/passwd 是相同的;
        第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的; 
        第三字段:上次修改口令的时间;这个时间是从1970年01月01日到最近一次修改口令的时间间隔(天数),可以通过passwd 来修改用户的密码;
        第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义; 
        第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义; 
        第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要过期;如果是系统默认值,是在添加用户时由 /etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义; 
        第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会完全禁用此用户;
        第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永不过期; 
        第九字段:保留字段;

二、关于用户组(GROUP):

用户组的配置文件主要有/etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;

1、/etc/group:

root:x:0:

在/etc/group 中的每条记录分四个字段: 
        第一字段:用户组名称; 
        第二字段:用户组密码; 
        第三字段:GID 
        第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;

        /etc/group文件使用户组的配置文件,内容包括用户和用户组,从中可以很清楚的看出用户所属的某个组或某些组。其中同一用户组的用户之间具有相同的权限。这一特性使得管理员在系统管理中获得了极大的方便。

        2、/etc/gshadow:

        /etc/gshadow的内容包括用户组(GROUP)、口令、GID及每个组所包含的用户:

root:::

        第一字段:用户组 ;
        第二字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码; 
        第三字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割; 
        第四字段:组成员,如果有多个成员,用,号分割; 


        三、通过修改用户(USER)和用户组(GROUP)配置文件来修改用户或用户组:

        1、我们可以修改/etc/passwd和/etc/group来修改用户和用户做归属的组,通过修改/etc/passwd来实现,当然也可以修改用户的bash类型,家目录等等;

        2、修改用户所归属的组,可通过/etc/group修改来实现;

        3、删除用户及用户组,我们可以通过删除/etc/passwd和/etc/group相应的用户和用户组就能达到目的,当然也能通过userdel和groupdel来实现对用户及用户组的删除;

        通过对用户和用户组的描述,可以使我们清楚的知道配置文件对Linux系统的重要性,也从另一面反映出Linux系统的哲学思想之一,即:使用文本文件保存程序的配置数据,使用一个文本编辑器即可完成系统及服务配置工作。



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

(0)
maomaosan2008maomaosan2008
上一篇 2016-10-23 20:57
下一篇 2016-10-23 21:39

相关推荐

  • ansible进阶(roles应用)

    ansible 进阶 一、roles简介 一个项目从开始到结束,不是简单几十个playbook就可以完事了,当文件数很多,有上百个的话,仅通过简单的includes不停的引用,那最终的结果错综复杂。这个时候ansible roles就可以很好的发挥它的作用了。 roles,字面意思是角色的含义,可以理解为有相互关联功能的集合。我们把安装ntp、mem、ngi…

    2017-01-05
  • Linux软件包管理与实例

    Linux系统的早期,编译是利用程序代码生成可执行文件的过程的手动编译。虽具有一定优势,但是专业知识要求高,不利于实际操作。因此出现了许多软件包管理器,最具代表的是由Red Hat 推出的RPM。Yum则有利于解决linux安装软件时的依赖性。 所谓依赖性,就是linux系统中的软件将不同的功能模块单独写入到不同的软件包中,最后将多个相互依存的软件包结合起来…

    2017-08-13
  • 译文-Symbolic一个基于func集中式管理平台[原创]

    Symbolic是一个开源的企业平台,旨在建立、配置和管理您的庞大分布式数据中心为目的开源框架,代表了目前最先进的数据中心解决方案的集中管理平台。 特征 属于RedHat认证协议栈的应用 具于func后端应用 支持 RHEL、Centos及Fedora 先进的拖放标签管理(Ajax) 提供Cobbler支持 灵活管理操作用户、主机 组和权限管理标记 先进的基…

    Linux干货 2015-03-27
  • 方便实用的文件查找与压缩

    在平时的运维工作当中通常会编辑某些文件,但时间久了,突然一下子记不起文件的名字,遇到的事情又很紧急,需要立马去处理,而自己只知道那个文件部分的特征信息,我们需要在系统中去搜索自己想要的文件,那么有没有办法去实现呢,当然有,在我们的系统中,文件查找的工具有两个,locate和find。那么下面来介绍这两个工具的用法以及两个工具之间的差别。 在我们linux系统…

    Linux干货 2016-08-13
  • 非交互式添加分区

    非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,位置千万不能指定错误 parted /dev/sdb mkpart primary 1 1000M parted /dev/sdb mkpart primary 1001 3000M 方法二 (1)将你要在parted命令行输入的命令实现…

    Linux干货 2017-04-24
  • LVM

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地…

    Linux干货 2016-12-17