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

一. 用户的由来

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

相关推荐

  • 编译安装——吐血经验,内附脚本

    程序包编译安装: 源码包:name-VERSION-release.src.rpm         rpm由源码包安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装        &nbsp…

    Linux干货 2016-08-24
  • vim shell 练习作业题

    vim练习题 1. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符   :%s/^[[:blank:]]\+//g 【注意要把/etc/profile复制到/tmp下,cp  /etc/profile  /tmp(尽量不要修改原文件)】 2. 复制/etc/rc.d…

    2017-08-07
  • 到处都是Unix的胎记

    一说起Unix编程,不必多说,最著名的系统调用就是fork,pipe,exec,kill或是socket了(fork(2),execve(2), pipe(2), socketpair(2), select(2), kill(2), sigaction(2))这些系统调用都像是Unix编程的胎记或签名一样,表…

    Linux干货 2015-04-03
  • 进程和计划任务

    进程概念 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集和     进程ID(Process ID,PID)号码被用来标记各个进程     UID,GID和SELinux语境决定对文件系统…

    Linux干货 2016-09-13
  • 磁盘配额、阵列与逻辑卷

    一、磁盘配额 在内核中执行以文件系统为单位启用对不同组或者用户的策略不同 根据块或者节点进行限制执行软限制(soft limit)硬限制(hard limit) 步骤一:获得文件系统支持临时有效:mount -o remount,usrquota,grpquota {mount_point|device}永久有效:写入配置文件 /etc/fstab 中检查文…

    Linux干货 2016-08-29
  • linux网络属性管理

    Linux网络属性配置 计算机网络:TCP/IP:协议栈(使用)ISO,OSI:协议栈(学习) MAC:Media Access Control48bits:ICANN:24bits, 2^24地址块:2^24 网桥(bridge):MAC地址表静态指定:动态学习:根据原地址学习; 交换机(switch):多端口网桥; IP(Internet protoco…

    Linux干货 2017-10-14