用户和组的四大配置文件简介

一. 用户的由来

linux系统拥有的就是资源,最重要的事就是对资源的分配,资源分给谁?在linux上资源的访问是对用户
赋予不同的权限实现,也就是说能访问资源的单位是用户。那用户在获取资源之前要实现证明自己是本用
户,这个过程称为认证,他通过密码和用户名实现。在用户登录时会将用户输入的用户名和密码进行校验
,校验过程就是将输入的用户名和密码与linux系统上记录的用户名和密码进行对比,相同就登录成功,反
之,就登录失败。那系统上记录用户和密码的文件就是我们要重点谈论的,分别在/etc/passwd和/etc/shadow。
接下来我们就围绕这两个配置文件及其相关的命令谈一谈。

用户的分类

linux对用户通过其获取资源的能力划分成二类用户:

    1.管理员用户:是linux系统中的神,无所别能,不受权限的限制。
    2.普通用户:获取资源受权限限制,他根据用处分为两类
        a. 系统用户:linux中每一个进程都有一个发起者,而又一些进程是系统启动时开启的服务
        进程。这些系统服务经常的发起者就是这些系统用户。而这些系统用户不必登录到计算机,
        这类用户就叫做系统用户。
        b.登录用户:lunux是一个多人多工的操作系统,这类用户可以登录后根据权限享有资源。

/etc/passwd配置文件简介

我们通过head 查看前五行内容:

[root@localhost ~]# head -n 5 /etc/passwd 
root:x:0:0: :/root:/bin/bash 
bin:x:1:1:bin:/bin:/sbin/nologin 
daemon:x:2:2:daemon:/sbin:/sbin/nologin 
adm:x:3:4:adm:/var/adm:/sbin/nologin 
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

其中每一行表示一个用户,每个用户多分为七个字段用分号隔开。这七个字段从左到右表示的意思分别为:

    1.USERNAME:用户姓名
    2.PASSWD:用户密码,但在此处不显示,密码保存在/etc/shadow文件中。早期的密码是放在此文件中
    由于放在这不安全,将其移到/etc/shadow文件下,文件名没变是为了兼容老版本
    3.UID:用户id号,因为计算机更容易识别数字,故每一个用户都有一个唯一表示ID,且用户识别并不
    是通过用户名字而是用户ID,例如在linux中ID为0的用户是管理员
    4.GID:用户主组。
    5.context:注释信息。
    6.HOME DIRECTORY:用户家目录,用户登录之后所处的目录
    7.SHELL:用户登录后使用的shell,shell是用户与linux内核打交道的接口

/etc/passwd配置文件简介

通过head查看配置文件内容为:

[root@localhost ~]# head -n 5 /etc/shadow 
root:$6$Of1m6zsD$8ZbhnzL1T95JnLNOH8YFC7CMth7DWhUsMl3KP.YR/TygDrcqSKJ6UFVLE/SDJaEIlhj09ZwQgJqQkMTDmZIf60:17097:0:99999:7::: 
bin:*:17097:0:99999:7::: 
daemon:*:17097:0:99999:7::: 
adm:*:17097:0:99999:7::: 
lp:*:17097:0:99999:7:::

每个字段以冒号为分隔符,可以看到每个密码有九个字段,分别表示的意思为:

    1.login name:用户名
    2.encrypted password:密码,以$符分为三个字段从左到右分别为
        a.第一个字段为加密算法,有1-6六个数字分别对应的算法为:MD5,SHA1,SHA224,SHA224,SHA256
        SHA384,SHA512。root用户中的6就表示sha512。
        b.第二个字段为salt,是8位随机数,是为了反正密码相同的不同用户密码一样而生成的随机数
        c.第三个字段为生成的密文,即密码。
    3.date of last password change:密码最后一次修改距离linux元年(1970.01.01)的天数
    4.minimum password age:密码再次修改最小经过的天数
    5.maximum password age:密码最大使用天数,过了这个天数就要修改
    6.password warning period:警告时间,密码到最大使用天数前多少天开始警告,提示用户密码快
    到最大使用时间需要修改了
    7.password inactivity period:密码到了最大使用天数之后,账号不可活动天数。
    8.account expiration date:用户过期时间,是1970到过期时间的天数。
    9.reserved field:保留字段。

用户相关命令简介

useradd:创建一个新用户,主要创建的shi/etc/passwd中的信息。

重要参数为:
    -r:创建系统用户
    -u:指定用户id
    -g:指定指定用户属id
    -G:指定用户附加组id
    -s:指定用户登录shell
    -c:用户注释信息
    -d:指定用户家目录
    -m:创建用户家目录
    -M:不创建用户家目录
    -c:注释用户信息

chage和passwd:主要修改/etc/shadow中的数据。具体选项可以查看man帮助,值得注意的是passwd可以通
过-l和-u锁定和解锁用户密码。

usermod:修改制定用户数据,处理修改/etc/passwd的一些常规信息,还可以是用-L和-U锁定和解除用户
密码,锁定密码实际上是在密码前加一个!号

chfn USERNAME:修改用户注释信息。

finger USERNAME:查看用户信息
userdel:删除用户 -r选项表明连同家目录页一并删除。

用户信息默认配置文件

当我们在创建用户没有指定shell,家目录等信息是,我们发现尽管没有指定,但依旧有shell,家目录等。
那么这些默认的属性来自那呢?这些默认信息都写在/etc/login.defs和/etc/default/useradd中看看都
定义了一些什么属性。

/etc/login.defs:

PASS_MAX_DAYS    99999    #密码最大使用时间

PASS_MIN_DAYS    0          #密码最小实用时间

PASS_MIN_LEN    5          #密码最小长度

PASS_WARN_AGE    7           #密码提前警告时间天数

ENCRYPT_METHOD SHA512   #指定了密码加密算法

CREATE_HOME    yes          #默认创建家目录

UID_MIN              500       #用户id最小值

UID_MAX            60000       #用户id最大值 

/etc/default/useradd

GROUP=100       #创建用户使用-N选项是默认的基本组

HOME=/home      #家目录创建目录

INACTIVE=-1     #密码非活动时间

EXPIRE=

SHELL=/bin/bash      #默认shell类型

SKEL=/etc/skel       #拷贝到家目录下的文件

CREATE_MAIL_SPOOL=yes     #是否创建邮箱

二.组的概念

在上面我们提到过,操作系统最大的作用是管理资源。而为了对某一类用户进行资源的分配和使用,我们
提出了组的概念。与组相关的两个配置文件为:/etc/group, /etc/gshadow。

组的分类

它和分类一样
    1.管理员组
    2.用户组:
        a.系统组
        b.登录组
站在用户的角度分:
    1.用户的基本组,也称为主组。
    2.附加组

/etc/group

查看文件格式为:

[root@localhost ~]# head -n 5 /etc/group root:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon

以逗号为分隔符,五个字段分别为:

    1.用户名
    2.用户密码,与/etc/passwd一样真正的密码在其他文件中
    3.GID:组ID号
    4.用户成员列表

/etc/gshadow配置文件

查看配置文件内容为:

[root@localhost ~]# head -n 5 /etc/gshadow
root:::
bin:::bin,daemon
daemon:::bin,daemon
sys:::bin,adm
adm:::adm,daemon

以逗号为分隔符,五个字段分别为:

    1.用户名
    2.用户密码,实际上组一般不设置密码,设置密码后用户使用newgrps命令属于密码切换属组,这是不
    安全的。
    3.组的属主,属组可对此组用户成员进行增删。
    4.用户成员列表。

组相关命令简介

groupadd:添加组

groupmod:修改组信息

groupdel:删除组

gpasswd:修改组命令
id USERNAME:查看用户id和组信息

groups USERNAME:查看用户的基本组和附加组。

groupmems -l -g GROUPNAME:查看组中有哪些成员。

三. 用户和组的关联

在创建用户时如果没有指定基本组就会创建一个同名的组,这个组中的会有一个成员列表为新创建的用户。
用户id名称的改变,并不会影响相同组的改变,因为两者之间没有直接联系,只是组成员中的列表会随着
成员用户名称的改变而改变。用户和组没有关联,只是名字相同而已

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

(0)
liroulirou
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • 马哥教育网络班22期+第2周课程练习

    1.linux上的文件管理类命令有哪些,其常用的使用方法及其相关示例演示    cp  复制文件  :单源;多源(目标必须是目录)        cp  /etc/fstab /tmp/hi.txt     -i 覆盖之前提醒用户确认   …

    Linux干货 2016-08-21
  • 网络N23期第二周:linux上的目录与文件管理命令,bash的工作特性等

    1、Linux上的目录与文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 1.1 mkdir  创建目录 使用方法:mkdir [OPTION]… DIRECTORY… 常用选项: -p:按需创建父目录 -m:创建目录权限 -v:输出详细创建目录过程 实例: 创建/tmp/test2/test3目录,定义权限为rwxrw-rw-,并详细显…

    Linux干货 2016-10-09
  • 【26期】Linux第五周学习小总结

        第五周的学习内容很丰富, 从查找到压缩打包,到软件包的管理,其中尤其是以压缩的内容最为丰富,而且庞大的选项让人绝望,那我今天就总结了一下压缩的一些东西,和大家一起分享。     为什么会产生压缩工具呢?因为我们的现在的很多文件会利用到的东西很多,电脑的读存速度也越来越快,一些大的文件在传输和使用上就会很麻烦,虽…

    2017-08-12
  • 高性能Mysql主从架构的复制原理及配置详解

    1 复制概述       Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器…

    Linux干货 2015-04-13
  • 由Linux中一个小问题引发的思考

    一、一个小问题 1、在学习Linux中我们经常会遇到很多有趣的小问题,今天笔者就遇到了一个很有意思的小问题,现在分享给大家:      “如何在本机字符终端登陆时,除显示原有信息外,再显示当前终端号,时间和主机名?” 2、实现方法如下:      输入vim /etc/…

    2017-07-16
  • shell脚本4——特殊循环和函数

    循环的特殊用法: 1、while循环的特殊用法之遍历文件的每一行 while read line; do     循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/SOMEFILE文件中的每一行,将每一行赋值给变量line…

    Linux干货 2016-08-21