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技巧 python2中的除法结果为0

    在python2中执行除法操作如果结果小于1就会返回0 如下面的例子: >>>81/82 0 如果你需要返回"正确的结果 ",有两种方法: 在脚本中引入from  ...

  2. Python|绝不乱入的靠谱书单

  3. 扫AR

  4. phantomjs 下拉滚动条获取网页的全部源码

    //codes.js var system = require('system'); var fs = require("fs"); //console.log('Loading ...

  5. oracle查看表名称和表字段注释

    --查询该表字段的注释select * from user_col_comments where Table_Name like '%SMS%' --查询类似表select * from user_t ...

  6. nagios系列(五)之nagios图形显示的配置及自定义插件检测密码是否修改详解

    nagios图形显示的配置 在服务端安装相关软件 #1.图形显示管理的依赖库 yum install cairo pango zlib zlib-devel freetype freetype-dev ...

  7. Vue项目之背景图片打包后路径错误

    第一种方法: 原因: 首先,出错点在url-loader上面. // url-loader配置 // build/webpck.base.conf.js { test: /\.(png|jpe?g|g ...

  8. webstrom随手笔记

    1.node代码智能提示功能: 2.页面代码格式化快捷键: Ctrl+Alt+L键,或者Code =>Rearrange code

  9. Linux 快速删除已输入的命令

    从输入模式到命令模式: 按”:“到最后一行,再按ctrl+z 就好了 history 显示命令历史列表 ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列 ...

  10. java 扫描输入

    到目前为止,从文件或标准输入读取数据还是一件相当痛苦第事情,一般第解决之道就是读入一行文本,对其进行分词,然后使用Integer Double 等类第各种解析方法来解析数据: //: strings/ ...