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

一. 用户的由来

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)
上一篇 2016-10-24 09:09
下一篇 2016-10-24 09:09

相关推荐

  • iptables/netfilter入门

      iptables是Linux中的重要组件,它是对报文进行过滤,在2001年的1月Linux 2.4内核发布以来,就已经是Linux的一部分了。     现在的iptbales已经成为了功能很大的防火墙,具备了专有的商业防火墙的大多数的功能了。 1、防火墙简介 2、iptables/netfilter简介 …

    Linux干货 2017-01-31
  • inode总结

    inode的介绍以及影响inode号的命令

    2017-11-27
  • N26 第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; 演示:     [root@263821a05cd9 /]# grep -E “^(root|fedora|user1)\>” /etc/passwd    root:x:0:0:root:/r…

    Linux干货 2017-03-05
  • 文本处理工具-2

    1、 sed 是一种行/流编辑器,它一次处理一行内容;处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中该行内容,处理完成后,把缓冲区的该行内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出,Sed 可以用来自动编辑一个或多个文件。 2…

    Linux干货 2016-08-15
  • 【N25第四周作业】grep

    文本处理工具: Linux上文本处理三剑客: grep, egrep, fgrep:文本过滤工具(模式:pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式, -G,-F grep:不支持正则表达式, sed:stream editor, 流编辑器;文本编辑工具; awk:…

    Linux干货 2016-12-18
  • 文件查找与压缩-1

       1、 locate命令(非实时查找即数据库查找) 1)、查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db      依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行( 周期性任务) 或者管理员手动更新数据库即是执行#updatedb命令;引构建过程…

    Linux干货 2016-08-15