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

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

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

相关文章

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完