Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件

  前面我们介绍了软件包管理。首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性。最后又介绍了源码包和脚本安装包,源码包和前面讲的RPM包安装相比是比较麻烦的,而且重点介绍了源码包和rpm包由于安装位置的不同造成后面启动相关服务的方法的区别。脚本安装包其实就是人为的修改源码包,使其成为一个自动安装的脚本,安装过程简单。那么软件包的介绍就结束了,本篇博客我们将学习用户管理。

  学习用户管理之前,我们要知道越是对安全性高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范,而在Linux系统中主要是通过用户配置文件来查看和修改用户信息的。所以在讲解用户管理之前我们先讲讲用户配置文件。

1、用户信息文件:/etc/passwd

  我们通过 vim /etc/passwd 命令,打开 passwd 文件:

  上面的每一行代表一个用户,我们以第一行为例:

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

  上面的root用户通过 : 分隔为 7 个字段。

  ①、第一个字段:root 表示用户名称

  ②、第二个字段:x  表示密码标志,真正的密码是存储在 /etc/shadow 文件中,下面我们会详细讲解。

  ③、第三个字段:UID,用户ID。这里我们需要说明的是在Linux系统中不一定root用户是超级用户,用户id为0的才是超级用户。

        0:表示超级用户,权限最大的用户。

        1-499:表示系统用户(伪用户),伪用户是系统用来启动相关服务和命令的,不能用来登录系统,而且不能删除,删除伪用户会造成一些命令不能使用。

        500-65535:普通用户。Linux内核2.6以后是可以支持232个用户,基本上是不用担心用户不够的。

  ④、第四个字段:GID,用户初始组ID。这里需要理解初始组和用户组的概念,初始组就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户组相同的组名作为这个用户的初始组。附加组值用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

  ⑤、第五个字段:用户说明

  ⑥、第六个字段:家目录。

        普通用户:/home/用户名/

        超级用户:/root/

  ⑦、第七个字段:登录之后的 shell。shell后面我们会详细介绍,这里简单来说shell就是Linux的命令解释器。

2、用户密码文件:/etc/shadow 

  我们通过 vim /etc/shadow 命令,打开 shadow文件:

  同理上面的每一行和 passwd 文件一样,都是表示一个用户。passwd描述的是用户信息,shadow文件描述的是用户密码。我们还是以第一行为例:

root:$6$bo3LXGTQ8SwsRa6J$.7qTM2GT8EmA8YSkHtIqlVefcUyOTdv3EBwJLA32U0qL/YHIOe0SQiacsNq4tSAN2zVbp0bvlOFP.sK0euPIg/:17324:0:99999:7:::

  上面的root用户通过 : 分隔为 9 个字段。

  ①、第一个字段:root 表示用户名

  ②、第二个字段:root用户的登录加密密码。

      一、加密算法升级为 SHA512 散列加密算法

      二、如果密码位是“!!”或者“*”代表没有密码,不能登录,基本上伪用户都是没有密码的

  ③、第三个字段:密码的最后一次修改日期。使用1970年1月1日作为标准时间,每过一天时间戳加1.

      root 用户的修改日期是17324。这里我们通过 date -d "1970-01-01 17324 days"进行换算:

  ④、第四个字段:两次密码的修改间隔时间(和第三字段相比)

  ⑤、第五个字段:密码有效期(和第三字段相比)

  ⑥、第六个字段:密码修改到期前的警告天数(和第五个字段进行比较)

  ⑦、第七个字段:密码过期后的宽限天数(和第五个字段进行比较)

        0:代表密码过期后立即失效

        -1:代表密码永远不会失效

  ⑧、第八个字段:账号失效时间(要用时间戳表示)

  ⑨、第九个字段:保留字段

3、用户组信息文件:/etc/group

  我们通过 vim /etc/group 命令,打开 group文件:

  一般创建一个用户,立即创建一个和用户名相同的用户组,我们还是以第一行 root 为例:

root:x:0:

  ①、第一个字段:组名

  ②、第二个字段:组密码标志,密码文件存放在 /etc/gshadow 中

  ③、第三个字段:GID,组id

  ④、第四个字段:组中的附加用户

4、用户组密码文件:/etc/gshadow 

  这个文件基本上不会用到

  ①、第一个字段:组名

  ②、第二个字段:组密码

  ③、第三个字段:组管理员用户名

  ④、第四个字段:组中的附加用户

5、用户的家目录

  ①、普通用户:/home/用户名/,一般创建一个新用户就会自动创建该家目录。所有者和所属组都是此用户,权限是700。

  ②、超级用户:/root/,所有者和所属组都是root用户,权限是550。注意看上去权限是550,其实权限对于超级用户基本上是没有限制的,所以这里给什么权限都没多大区别。

6、用户的邮箱

  目录是:

/var/spool/mail/用户名/

7、用户的模板目录

  目录是:

/etc/skel

  这个目录是每创建一个新用户,就会在其家目录下自动创建 /etc/skel 目录下的所有文件。

  范例:我们在 /etc/skel 目录下创建一个 hello 文件,然后创建一个新用户 test,进入到 test 用户的家目录/home/test 就会看到有 hello 文件。

8、总结

  本篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow;然后介绍了用户组信息文件/etc/group,用户组密码文件/etc/gshadow。用户的家目录,以及用户的模板目录,这些我们需要了解即可,下一篇博客我们将学习用户管理的相关命令。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

ulimit: open files: cannot modify limit: Operation not permitted

      在从root用户切换到oracle用户时,碰到了ulimit: open files: cannot modify limit: Operation...

1742
来自专栏云计算教程系列

在腾讯云CVM上安装熟悉Node.js

Node.js是一个开源JavaScript运行环境,用于轻松构建服务器端和网络应用程序。该应用程序可在Linux,OS X,FreeBSD和Windows上运...

1805
来自专栏linux系统运维

压缩打包的介绍以及几种压缩工具的使用

1706
来自专栏编程

如何建立一个Node.js的应用生产在Ubuntu 14.04

Node.js是一个开源的Javascript运行时环境,可以轻松构建服务器端和网络应用程序。该平台运行在Linux,OS X,FreeBSD和Windows上...

2110
来自专栏酷玩时刻

Redis4.0.1安装以及主从复制详解

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(...

622

使用Puppet模块创建LAMP堆栈

在Puppet中,模块是服务器配置的构建块。模块安装和配置包,创建目录,并生成用户在模块中包含的任何其他服务器更改。Puppet模块旨在执行特定任务的所有部分,...

963
来自专栏Python小屋

Python扩展库psutil用法精要

0、安装与导入psutil pip install psutil import psutil 1、查看CPU信息 >>> psutil.cpu_count() ...

2804
来自专栏云计算教程系列

如何在CentOS 7上安装Apache Kafka

Apache Kafka是一种流行的分布式消息代理,旨在有效处理大量实时数据。Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ...

871
来自专栏DeveWork

为Options Framework主题后台框架添加后台侧边栏

Options Framework是一款WordPress后台框架,在《WordPress主题后台选项开发框架 Options Framework 介绍》一文中...

18110
来自专栏Java技术分享

Linux用户权限管理之三(文件与权限的设定)

所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行等,在linux下,每个用户都具有不同的权限,普通用户只能在自己的主目录下进行写操作,而在主...

2008

扫码关注云+社区