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。用户的家目录,以及用户的模板目录,这些我们需要了解即可,下一篇博客我们将学习用户管理的相关命令。
Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件的更多相关文章
- webpack4 系列教程(十四):Clean Plugin and Watch Mode
作者按:因为教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步<webpack4 系列教程(十四):Clean Plugin and Watch Mode>原文地址.更欢迎 ...
- Linux基础学习(7)--用户和用户组管理
第七章——用户和用户组管理 一.用户配置文件 1.用户信息文件/etc/passwd: (1)用户管理简介:所以越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范. ...
- Linux系列教程(四)——Linux文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...
- Linux系列教程(四)——Linux常用命令之文件和目录处理命令
这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...
- Unity3D脚本中文系列教程(十四)
http://dong2008hong.blog.163.com/blog/static/469688272014032134394/ WWWFrom 类Unity3D脚本中文系列教程(十三)辅助类. ...
- Linux学习之十四-Linux文件和目录权限
Linux文件和目录权限 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允 ...
- Linux学习笔记(12)用户和用户组管理
越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.在Linux中主要是通过用户配置文件来查看和修改用户信息. 1 用户信息文件 (1)用户信息文件/etc/passw ...
- Cobalt Strike系列教程第四章:文件/进程管理与键盘记录
Cobalt Strike系列教程分享如约而至,新关注的小伙伴可以先回顾一下前面的内容: Cobalt Strike系列教程第一章:简介与安装 Cobalt Strike系列教程第二章:Beacon详 ...
- Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
随机推荐
- [SDOI2009]HH的项链解题报告
原题目:洛谷P1972 题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此 ...
- 阿里云配置php环境 ubuntu12.04 32 nginx+php5+mysql
最近几个客户都订购了阿里云服务器,如何配置服务器就比较重要了 比较喜欢ubuntu的系统,这里以12.04 32位来说 服务器配置采用 nginx+php5+mysql 首先是apt-get的更新 a ...
- HIT 1917 Peaceful Commission
这道题题意就是给你n对人,一对中编号为x,x+1,给你m对矛盾,表示这两个人不能同时选. 然后就是Two-Sat的模板题了,就是根据对称性,连边,加缩点,最后拓扑排序,求出一组可行解就可以了. #in ...
- Python协程爬取妹子图(内有福利,你懂得~)
项目说明: 1.项目介绍 本项目使用Python提供的协程+scrapy中的选择器的使用(相当好用)实现爬取妹子图的(福利图)图片,这个学会了,某榴什么的.pow(2, 10)是吧! 2.用到的知 ...
- Average of Levels in Binary Tree
Given a non-empty binary tree, return the average value of the nodes on each level in the form of an ...
- Ubuntu中MongoDB安装
在Ubuntu中MongoDB有时候启动不起来,可以参考以下方法从新安装: 1.导入包管理系统使用的公钥 Ubuntu 的软件包管理工具(即dpkg和APT)要求软件包的发布者通过GPG密钥签名来确保 ...
- java 学习笔记——类之间的关系之封装、继承与多态的详解
封装 一个封装的简单例子 封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联 ...
- EasyUI DataGrid使用示例
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EasyUIDemo.aspx. ...
- Telerik RadGridView动态增删行及行列操作
最近使用一直使用第三方控件Telerik,版本 2011 Q1,一直使用显示控件RadGridView,使用起来比DataGird好使, 也发现有控件问题. 1.增行 RadGridView中使用Be ...
- Echarts数据可视化series-map地图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...