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学习之用户配置文件详解(十四)的更多相关文章

  1. Linux学习之ACL权限详解(十)

    Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终 ...

  2. Linux:SSH服务配置文件详解

    SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...

  3. Linux学习之守护进程详解

    Linux系统守护进程详解                                                              ---转自:http://yuanbin.blog ...

  4. Linux学习之sed命令详解

    概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...

  5. Linux学习笔记17--Linux系统启动详解

    多数操作系统的启动流程: BIOS启动自检 ->MBR引导->执行引导程序GRUB->加载内核->执行init->runlevel   BIOS(Basic Input ...

  6. Linux学习之iostat命令详解

    我们可以用iostat 命令来监视系统输入/输出.设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的活动时间 来实现.iostat 命令生成的报告可以用来更改系统配置,从而更好地平衡物理磁盘和适 ...

  7. linux下的apache配置文件详解

    .Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/s ...

  8. Linux学习之CentOS(八)----详解文件的搜寻、查找(转)

    which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...

  9. Elasticsearch学习系列之配置文件详解

    ################################### Cluster ################################### #定义集群名称,默认是elasticse ...

随机推荐

  1. Python 成仙之路

    这个部分的所有内容,都是我学习Python过程中的学习笔记. 这个部分的所有内容,都是我学习Python过程中的学习笔记. 这个部分的所有内容,都是我学习Python过程中的学习笔记. 第一部分  p ...

  2. weblogic中部署SSH项目遇到的坑

    总结将SSH项目部署到weblogic遇到的坑.项目中是SSH,另外还用到了webservice.quartz等框架.在tomcat部署是可以的,现在总结部署到weblogic遇到的坑. 在这里说一下 ...

  3. CMake 实践教程

    本篇博客是根据 <<CMake Practice>> 一文编写, 目的有三: 其一: 提取出其中的精要部分; 其二: 对其中不易理解的地方进行简要说明; 其三: 方便后续查找复 ...

  4. SpringBoot使用Redis缓存

    (1).添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  5. linux关机时候执行命令脚本或程序

    Write a service file and place it in /etc/systemd/system/beforeshuttingdown.service code: [Unit] Des ...

  6. DataSnap ClientdataSet 三层中主从表的操作

    非原创  摘自:http://hi.baidu.com/yagzh2000/blog/item/fc69df2cb9845de78b139946.html三层中主从表的操作(删除.新增.修改)一定要在 ...

  7. centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  8. 目标检测--Scalable Object Detection using Deep Neural Networks(CVPR 2014)

    Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander ...

  9. body-parser Node.js(Express) HTTP请求体解析中间件

    body-parser Node.js(Express) HTTP请求体解析中间件 2016年06月08日     781     声明 在HTTP请求中,POST.PUT和PATCH三种请求方法中包 ...

  10. jvm字节占用空间分析

    一个对象实例占用了多少字节,消耗了多少内存?这样的问题在c或c++里使用sizeof()方法就可以得到明确答案,在java里好像没有这样的方法(java一样可以实现),不过通过jmap工具倒是可以查看 ...