详解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

相关推荐

  • 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

    格式说明: 操作 概念 命令 说明及举例 七.cat、cut、less、head、tail、wc、sort、uniq、grep cat cat -A a.txt 查看隐藏内容 cat -n a.txt 显示行号 cat -s a.txt 压缩空行,把多行空行压缩为一行 …

    Linux干货 2016-08-24
  • Linux基础(九)-shell编程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash declare -i nologin=0 declare -i login=0 while read l…

    Linux干货 2016-11-20
  • btrfs 文件系统

    简介   Btrfs((B-tree,ButterFS ,Better FS通常念成Butter FS),由Oracle于2007年宣布并进行中的COW(copy-on-write式)文件系统。继ext3/4文件系统之后linux又有了比较强大的文件系统(btrfs文件系统),btrfs文件系统不仅可以将ex…

    Linux干货 2016-02-19
  • Linux文件类型及颜色标识整理

    Linux文件类型及颜色标识整理 M21陆东贵 使用工具: ls命令     ls –l:以常格式显示文件及目录的详细信息     例如:-rw-r–r–  1 root root       0 10月 …

    Linux干货 2016-10-18
  • 文件查看及查找命令

    cat  查看一个文件   -E: 显示行结束符$   -n: 对显示出的每一行进行编号   -A:显示所有控制符   -b:非空行编号   -s:压缩连续的空行成一行   -T:显示制表符 常用:cat -An /et…

    Linux干货 2017-04-08
  • select case的用法-函数练习-20160819

    §·select  case的用法 *介绍select 循环与菜单 ◎语法 select  variable  in  list[ ] do 循环体命令 Done  ◎select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输 入 ◎用户…

    Linux干货 2016-08-19