Linux学习之用户配置文件详解(十四)
Linux学习之用户配置文件详解
目录
用户信息文件/etc/password
影子文件/etc/shadow
组信息文件/etc/group
组密码文件/etc/gshadow
用户信息文件/etc/password
用户管理
用户管理对个人机来说意义不大,但是越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
在Linux中主要是通过用户配置文件来查看和修改信息。
用户信息文件/etc/passwd

每一个用户为一行,每个信息用冒号隔开。
第一个字段:用户名称
第二个字段:密码标志,这个标记为x,只要有这个标记意味用户是有密码的,密码保存在/etc/shadow
第三个字段:UID(用户ID),每个用户都有一个ID,用来唯一标识用户。
0:超级用户
1-499:系统用户(伪用户)
500-65535:普通用户
第四个字段:GID(用户初始组ID)
初始组和附加组
初始组:就是指用户一登录就立即拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
每个用户必须得有一个初始组,当创建用户的时候就会生成一个和用户名相同的组,可以将用户改为其他初始组,但是最好不要这么做,如果想将用户添加别的组,可以添加到附加组,附加组可
以有多个,最后我们可以在/etc/group里查看所有组。
第五个字段:用户说明
第六个字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第七个字段:登录后的Shell
查看/etc/passwd的权限(644)

Shell是什么?
Shell就是Linux的命令解释器。
其实就是将用户输入的命令给命令解释器解析传给内核,内核做出应答,显示内容导命令窗口的过程。
在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin
我们要注意的是:
所有普通用户的Shell必须是/bin/bash,才能正常登录。
怎么将一个普通用户改成管理员?
我们首先添加一个用户user1,这里只需要将第三个字段改为0,就可以变成系统管理员。

怎么将一个用户禁止登录?
只需要将最后一个字段改为/sbin/nologin。
最后,添加用户信息的时候,不要错误,可能导致这个用户无法登录系统。
影子文件/etc/shadow
影子文件/etc/shadow
用来存放用户密码信息。
第一个字段:用户名
第二个字段:加密密码
加密算法升级为SHA512散列加密算法
如果加密位是"!!"或"*"代表没有密码,不能登录
第三个字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳加1
第四个字段:两次密码的修改间隔(和第三个字段相比)
就是改一次密码,需要几天才能第二次该密码
第五个字段:密码有效期(和第三个字段相比)
第六个字段:密码修改到期前的警告天数(和第五个字段相比)
如果我们在第五个字段设置为90天,第六个字段设置为7天,当我们在创建用户的83时,使用这个用户每次登录到系统,都会提示让你修改密码
第七个字段:密码过期后的宽限天数(和第五个字段相比)
0:代表密码过期后立即失效
-1:则代表密码永远不会失效
第八个字段:账号失效时间
第九个字段:保留
时间戳与日期的转换
时间戳换算为日期
date -d "1970-01-01 16076 days" 日期换算为时间戳
echo $(($(date --date="2019/02/06" +%s)/86400+1))
组信息文件/etc/group
组信息文件/etc/group

第一个字段:组名
第二个字段:组密码标志,标志这个密码是放到/etc/gshadow
第三个字段:GID
第四个字段:组中附加用户
怎么查看一个用户属于哪个组?
先查看/etc/passwd文件,看用户的组ID。
再查看/etc/group文件,查找与组ID相同的行,则代表用户在这个组。
组密码文件/etc/gshadow
组密码文件/etc/gshadow
第一个字段:组名
第二个字段:组密码
这个组密码是干嘛的?
只有root用户才能把一个用户加到其他用户组,如果root用户太忙了,我们可以给组选一个管理员,也就是说我们给每个小组选一个组长,给这个组长设一个密码,他就可以把其他用户添加到自己组里来,
但这样做降低了系统的安全性,不推荐这样做。
第三个密码:组管理用户名
第四个字段:组中附加用户
Linux学习之用户配置文件详解(十四)的更多相关文章
- Linux学习之ACL权限详解(十)
Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终 ...
- Linux:SSH服务配置文件详解
SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...
- Linux学习之守护进程详解
Linux系统守护进程详解 ---转自:http://yuanbin.blog ...
- Linux学习之sed命令详解
概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...
- Linux学习笔记17--Linux系统启动详解
多数操作系统的启动流程: BIOS启动自检 ->MBR引导->执行引导程序GRUB->加载内核->执行init->runlevel BIOS(Basic Input ...
- Linux学习之iostat命令详解
我们可以用iostat 命令来监视系统输入/输出.设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的活动时间 来实现.iostat 命令生成的报告可以用来更改系统配置,从而更好地平衡物理磁盘和适 ...
- linux下的apache配置文件详解
.Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/s ...
- Linux学习之CentOS(八)----详解文件的搜寻、查找(转)
which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...
- Elasticsearch学习系列之配置文件详解
################################### Cluster ################################### #定义集群名称,默认是elasticse ...
随机推荐
- python - 迭代器(迭代协议/可迭代对象)
迭代器 # 迭代器协议 # 迭代协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就触发一个 StopIteration 异常,以终止迭代(只能往后走不能往前退) # 可迭代对 ...
- Debian Linux Error “Driver 'pcspkr' is already registered, aborting...”
问题: Error: Driver ‘pcspkr’ is already registered, aborting… 解决: [root@reistlin.com ~]# echo "bl ...
- Linux磁盘分区、挂载
⒈Linux下磁盘说明 1)Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘. 2)对于IDE硬盘,使用“hdx~”标识符,“hd”代表IDE硬盘. 对于SCSI硬盘,使用“sd ...
- 在ASP.NET Web Forms中用System.Web.Optimization取代SquishIt
将一个ASP.NET Web Forms项目从.NET Framework 4.0升级至.NET Framework 4.5之后,发现SquishIt竟然引发了HTTP Error 500.0 - I ...
- mono修改配置
当前mono安装目录为:/home/mono,安装成功后修改配置需进入这个路径: cd /home/mono 1.修改TcpBinaryFrameManager.cs文件 cd /home/mono/ ...
- UML和模式应用4:初始阶段(4)--需求制品之用例模型模板示例
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...
- 嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】
转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的AP ...
- (记录合并)union和union all的区别
SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION内部的SELECT语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条SE ...
- 为cobbler自动化安装系统工具添加epel源
关于cobbler的安装及部署,参考:CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解http://blog.csdn.net/reblue520/article/det ...
- Gym100340 线性dp
//看题解写的 https://blog.csdn.net/sdfzyhx/article/details/51804748#include<bits/stdc++.h> using na ...