网络安全快速入门(十五)(中)用户的文件属性及用户相关文件详解

本文主要是介绍网络安全快速入门(十五)(中)用户的文件属性及用户相关文件详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

15.4 序言

我们之前已经了解了关于用户管理的一些基础命令,本章节我们就来了解一下关于文件权限的一些小知识以及基于某些文件来手动创建一个用户,话不多说,我们开始吧!

15.5 文件权限

在linux中,文件都是通过查看属主,属组和其他用户的权限来进行运行,查看或修改的,而在这里就涉及到文件权限的问题了,而我们在上篇文章已经说过了文件权限的属性问题,在这里就不重新赘述了,我们在这里着重了解一下文件的权限,我们可以通过ls -l 命令来查看文件属性,自然也可以查看文件权限了,还是老规矩,我们通过举例来说明一切问题!

我们查看etc下的passwd文件的属性及权限,查看命令如下:

ls -l /etc/passwd

执行结果如下图

如上图,开头的十个字符就是文件的属性位及权限位我们在上篇文章已经讲过了, "."前面的依次为文件属性,之后为文件属主的权限,文件属组的权限以及其他用户对于该文件的权限,

常见的文件表示类型:

  • -:一般文件
  • d:目录文件
  • l:链接文件

具体文件权限有以下分类

文件权限分类:

  • r:可以执行catheadtail等命令读取文件中的内容
  • w:可以用vi/vim或者重定向等操作向文件中写入内容或着修改内容
  • x:可以执行文件

如果文件为目录文件的话,则

目录权限分类:

  • r:可以执行ls命令,来查看目录下有哪些文件
  • w:可以在目录执行文件创建和删除等操作
  • x:可以执行cd等命令
注意:
  • 每一类用户的权限顺序都是:读、写、执行
  • 如果相对应的权限,就会出现字符,没有就会显示

而后面的两个root则代表用户属主及属组,(这里我们在上一篇文章中已经了解过了,这里不多做赘述,仅说明用户角色简写)

用户角色简写如下:

  • 属主用户(u
  • 属组用户(g
  • 其他用户(o
  • 全部用户(a

文件属性就暂且到这里,接下来我们来了解一些相关命令吧!

15.6 文件属性相关命令

15.6.1 chown

作用:修改文件的属主

格式:

chown 文件属主.文件属组 [-R] 文件名称
选项:
  • -R:在修改目录的时候,将目录的目录中的文件一并修改

举例:

修改文件/passwd文件属主及属组均为ch230

chown ch230.ch230 passwd

看结果

chmod 赋权 文件名

ok,下一个

15.6.2 chgrp

作用:修改文件的属组
格式:
chgrp 用户名 [-R] 文件名
选项:
  • -R:在修改目录的时候,将目录的目录中的文件一并修改

用法跟上述chown用法一样,这里不做举例!

15.6.3 chmod

作用:修改文件的权限

格式:
chmod 赋权 文件名

值得一提的是,这里有两种赋权方法,

方法一:(通过用户身份简称对文件进行赋权)

  • +:增加权限(在原有的基础上修改)
    • 例子:chmod o+w 11.txt 给其他用户增加写的权限
  • -:去除权限(在原有的基础上修改)
    • 例子:chmod g-r 11.txt
  • =:将权限修改位指定的权限(和原权限无关)
    • 例子:chmod u=rwx,g=rw,o=r 11.txt

方法二:(通过数组对文件进行赋权)

数字表示权限:
  • 0 :无权限
  • 1 :执行;
  • 2 :写;
  • 3.:写执行;
  • 4 :读;
  • 5: 读执行;
  • 6:读写;
  • 7:读写执行;

(这里要注意,用数字方法会将文件本身重新赋权,因此要提前了解文件本身权限方便进行赋权!!!!

例子:
将/passwd文件属主修改为读写执行,其他属性不变
chmod 744 passwd

看结果

这里需要注意:

  • 如果是一个数字修改的是其他用户
  • 如果是俩个数字修改的是其他用户和属组
  • 三个就属主、属组、其他用户

ok,接下来我们来了解创建用户的相关文件

15.7 创建用户的相关文件:

/etc/passwd<<<用户存放位置
/etc/shadow<<<用户密码存放位置
/etc/group<<<用户组存放位置
/etc/skel <<< 用户家目录模板
/etc/login.defs <<<控制新建用户的默认属性
/var/spool/mail/ <<<用户邮箱存放位置

passwd文件我们在上一篇博文已经讲过了,接下来我们针对其他五个相关文件来进行逐一讲解,话不多说直接开搞:

15.7.1 /etc/shadow文件

我们已经知道了,该文件是存放用户密码的文件,因此安全性相对而言会比/etc/passwd的安全性要高,两者的文件权限对比如下:

  • /etc/passwd文件权限位:

  • /etc/shadow文件权限位:

可以看到,/etc/passwd文件所用用户均可读取,而/etc/shadow文件所有用户均不可操作,因此,/etc/shadow文件的安全性会比/etc/passwd文件安全性要高,但是这里需要注意的是:root可以无视文件用户权限对文件进行修改和操作,因此需要防止有用户通过root身份对敏感文件进行更改!!!

接下来我们来看etc/shadow文件内容:

文件内容如下:

这里我们发现格式似乎与/etc/passwd文件的格式大差不差,但是区别还是有的,接下来我们提取出一行进行逐一分析:

如下图

这里我们需要知道,该文件通过冒号对文件内容进行分割,我们通过冒号对文件内容进行逐一分析:

字段含义
用户名(账户)用户登录系统时所使用的用户名
加密后的密码经过SHA512加密后的密码,(默认经过SHA512方法进行加密,也可以通过md5,db5等加密方法进行加密!!)
最后一次修改时间距离1970年1月1日到现在的天数,可通过date -d "1970-01-01 15775 days" 命令来查看到现在的总天数,空子段表示密码年龄被禁用
最小修改时间间隔修改密码之间的时间间隔,空子段或0表示无限制!
密码使用有效期到期后用户必须修改密码,在经过这些天后,密码仍然可用,但是下次登陆会强制修改密码!
密码需要变更前的警告天数密码国企前几天进行警告,孔子段表示没有强制密码过期
密码过期后的宽限时间密码过期后,依然接受此密码的天数,空最短表示没有强制密码过期
失效时间密码失效的绝对天数,可以在不删除用户的情况下锁定用户,不让其登录,也是从1970年一月一日开始计算,若到期,则账号失效,一般用在商业版中!
标志

目前没有功能,等待新功能加入!!
 

这里需要注意的是,该文件对任何用户没有任何权限,因此我们需要去用root权限对文件进行修改,再修改过程中,我们在保存退出时需要进入两次末行模式才可以退出该文件!!!

15.7.2 /etc/group文件

该文件是存放用户组的文件,文件与/etc/passwd文件有些相似,具体格式如下图:

我们来截取一条记录对该文件进行分析:

与/etc/passwd文件类似的点是,都是通过冒号进行分隔,分为 4 个字段,每个字段对应的含义为: 组名密码占位符GID该用户组中的用户列表我们来一个一个进行分析

组名

用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。一般用字母,不用纯数字。

密码占位符,和 /etc/passwd 文件一样,这里的 “x” 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。
组id(GID)群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆
用户组的用户列表此字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户

这里需要注意:

每个用户都可以加入多个附加组,但是只能属于一个初始组(主组)。所以我们在实际中,如果需要把用户加入其他组,则需要以附加组的形式添加。

15.7.3 /etc/skel

该文件位用户家目录模板,

我们要知道,在我们船舰新用户的时候,系统会将该文件复制到指定的家目录下,修改目录名称,属主,属主及文件权限,从而生成一个用户家目录,具体操作如下:

新用户的家目录生成步骤如下:
  • /etc/skel目录复制到home'下,改名位和用户名相同
    • 将这个目录的属主、属组改为该用户
    • 将目录的权限改位700
      • 假设用户tom
        • cp -r /etc/skel /home/tom
        • chown -R tom.tom /home/tom
        • chmod -R 700 /home/tom

这里我们了解,接下来我们在进行手动创建用户名称时候再来进行详细解释!!

15.7.4 /etc/login.defs

该文件主要控制新建用户的默认属性,一般不常用,我们可以进去看一下

可以看到,该文件很多都是通过#来进行注释的,这个文件看起来也很多,这里我们就看一些我们比较常用的几个关键字段,(似乎该文件并不常用)具体如下代码框:

#QMAIL_DIR /var/spool/mail
指定新用户的邮箱位置
PASS_MAX_DAYS 99999
新用户密码最长有效期
PASS_MIN_DAYS 0
新用户修改密码最短时间
PASS_MIN_LEN 5
用户密码最短长度
PASS_WARN_AGE 7
密码到期前警告时间长度
UID_MIN 
新建普通用户的默认uid最小值
UID_MAX
新建普通用户的默认uid最大值
CREATE_HOME
默认创建家目录
USERGROUPS_ENAB
当前用户组中没有用户,是否删除用户组
ENCRYPT_METHOD SHA512
指定加密算法

这个文件我们进做了解,不赘述,如有详细了解请通过其他博文进行了解,还请各位读者见谅!

15.7.5 /var/spool/mail/ 

该文件一般用来存储用户邮件,用户邮件是该目录与用户同名的目录!目前来讲对我们用处不大,但是在创建用户的时候最好创建该目录!这里我们同样不过多赘述,如需了解请查看其他相关博文!!

我们今天的内容就到这里了,如有错误还请大佬在评论区进行指点,感谢各位观看,我们下期再见0..0

这篇关于网络安全快速入门(十五)(中)用户的文件属性及用户相关文件详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034153

相关文章

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

Springboot使用RabbitMQ实现关闭超时订单(示例详解)

《Springboot使用RabbitMQ实现关闭超时订单(示例详解)》介绍了如何在SpringBoot项目中使用RabbitMQ实现订单的延时处理和超时关闭,通过配置RabbitMQ的交换机、队列和... 目录1.maven中引入rabbitmq的依赖:2.application.yml中进行rabbit

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

Python绘制土地利用和土地覆盖类型图示例详解

《Python绘制土地利用和土地覆盖类型图示例详解》本文介绍了如何使用Python绘制土地利用和土地覆盖类型图,并提供了详细的代码示例,通过安装所需的库,准备地理数据,使用geopandas和matp... 目录一、所需库的安装二、数据准备三、绘制土地利用和土地覆盖类型图四、代码解释五、其他可视化形式1.

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输