LiangGaRy-学习笔记-Day19

news2024/11/17 9:27:24

1、回顾知识

1.1、文件系统说明

xfs与ext4文件系统

  • CentOS7以上:默认的就是XFS文件系统
    • xfs 使用的就是restore、dump等工具
  • CentOS6默认的就是ext4文件系统
    • extundelete工具就是用于ext4系统

1.2、回顾Linux文件系统

Linux文件系统是由三个部分组成

  • inode
  • 文件名
  • block块

Linux:文件系统类型

  • ext2/ext3/ext4
  • xfs

最小的存储单位就是扇区,每个扇区就是512字节–>就是0.5KB

多个扇区组成一个block–>4Kb

Inode包含的信息

  • stat+ 文件可以查看
  • 1个inode节点–>128字节
  • 查看inode :
    • ls -i
  • 查看inode总数:
    • df -i
  • 查找文件大小为0 的文件
    • find / -type f -size 0 -exec rm {} ;
[root@Node1 ~]# stat install.log
  File: `install.log'
  Size: 26505     	Blocks: 64         IO Block: 4096   regular file
Device: 803h/2051d	Inode: 784899      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-05-30 06:32:19.370999940 +0800
Modify: 2023-05-30 06:35:25.849999847 +0800
Change: 2023-05-30 06:35:29.599999845 +0800

#查看文件的inode号
[root@Node1 ~]# ls -i  install.log
784899 install.log

#查看系统的inode情况
[root@Node1 ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda3            1160992   52142 1108850    5% /
tmpfs                 238344       1  238343    1% /dev/shm
/dev/sda1              76912      39   76873    1% /boot

2、文件的硬链接和软链接

2.1、硬链接说明

硬链接:

  • 硬链接指通过索引节点来进行链接
  • inode是可以对应多个文件名的
  • 多个文件名指向同一个inode号就是硬链接
  • 允许一个文件拥有多个有效的路径,有防止误操作删除的作用
  • 多个文件名共用一个inode号;删除只是修改链接数;
  • 如果inode号为0了,就是释放了inode号
  • 硬链接是不知作用于目录
  • 硬链接也不能跨分区进行创建

硬链接总结:

  • 相当于复制,功能强大点,可以同步更新文件
  • 语法:ln + 源文件 + 链接文件
  • 不支持跨分区链接
  • 不通的文件名执行同一个inode号
  • 删除文件等于删除inode的链接数
  • 只能对文件操作,不能对目录操作

问题:刚创建的一个目录,链接数就是2,原因是什么?

  • 刚创建的目录,里面隐藏了两个目录;一个是.另外一个就是…
#创建一个目录
[root@Node1 ~]# mkdir  /test/
[root@Node1 ~]# cd /test/
[root@Node1 test]# ls

#创建一个文件aa.txt
[root@Node1 test]# echo aaaaaaaaaaaaa >> aa.txt

#然后直接创建一个硬链接
[root@Node1 test]# ln aa.txt  aa.txt.hard

#查看两个文件的信息
[root@Node1 test]# ll aa.txt aa.txt.hard 
-rw-r--r--. 2 root root 14 Jun  3 09:54 aa.txt
-rw-r--r--. 2 root root 14 Jun  3 09:54 aa.txt.hard

#使用diff命令来对比两个文件也没问题
[root@Node1 test]# diff aa.txt aa.txt.hard 
	#使用md5sum命令对比两个文件也没有问题
[root@Node1 test]# md5sum aa.txt aa.txt.hard 
a628dac4de20bc12b5eef5ad614cfccb  aa.txt
a628dac4de20bc12b5eef5ad614cfccb  aa.txt.hard

#随便向一个文件取追加内容,两个文件都同事增加
[root@Node1 test]# echo "123456" >> aa.txt.hard 
[root@Node1 test]# 
[root@Node1 test]# cat aa.txt
aaaaaaaaaaaaa
123456

#修改权限,文件也会同时修改
[root@Node1 test]# chmod 7777 aa.txt
[root@Node1 test]# ll aa.txt aa.txt.hard 
-rwsrwsrwt. 2 root root 21 Jun  3 09:58 aa.txt
-rwsrwsrwt. 2 root root 21 Jun  3 09:58 aa.txt.hard

#新创建的目录中,里面就隐藏了两个目录
[root@Node1 ~]# mkdir aa
[root@Node1 ~]# cd aa
[root@Node1 aa]# ls -a
.  ..

2.2、软链接说明

软链接说明:

  • 软链接:相当于windows的快捷方式;
  • 另外一种称之为符号链接(Symbolic Link)–>这种也叫软链接
  • 语法:ln + s 源文件 + 链接文件
  • 源文件删除了,链接文件就失效
  • 可以对目录进行链接,也可以跨分区链接
    • 注意:软链接跨分区一定写上绝对路径
#准备素材
[root@Node1 ~]# cp -a /etc/passwd .
[root@Node1 ~]# ls
passwd

#创建软链接
[root@Node1 ~]# ln -s passwd  passwd.soft
[root@Node1 ~]# ll
total 4
-rw-r--r-- 1 root root 1019 Jun 26 11:49 passwd
lrwxrwxrwx 1 root root    6 Jul  5 11:09 passwd.soft -> passwd

#如果删除源文件,链接文件失效
[root@Node1 ~]# rm -rf passwd
	#链接文件显示红色文件闪烁
[root@Node1 ~]# ll 
total 0
lrwxrwxrwx 1 root root 6 Jul  5 11:09 passwd.soft -> passwd

#软链接文件可以跨分区链接-->但是跨分区需要协商绝对路径
[root@Node1 ~]# cd /boot/
[root@Node1 boot]# ln -s /boot/grub /root/grub
[root@Node1 boot]# ll /root/grub/

3、Inode说明

3.1、Inode的特殊作用

inode号和文件名是分开的

  • 假设文件名含有特殊符号;无法正常删除?
    • 可以直接删除inode号;就等于删除文件
  • 移动文件或者重命名的时候,只需要改变文件名,不会影响到inode
  • 系统无法从inode号码来得知文件名

为何每次修改完服务器配置文件后,都需要重新加载一下配置文件?

  • 修改了配置文件的内容,inode号就会改变,因此要重新读取一下文件的inode就可以;
#有些文件是特殊字符,如果要删除比较麻烦,可以通过inode号删除
[root@Node1 ~]# find /root  inum 33574987 -exec rm -i {} \;

#修改文件名并不会影响inode
[root@Node1 ~]# echo 111 >> aa.txt
[root@Node1 ~]# ls -i
33574978 aa.txt
[root@Node1 ~]# mv aa.txt bb.txt
[root@Node1 ~]# ls -i
33574978 bb.txt

4、关于文件系统的实战

4.1、实战:磁盘有空间,但无法创建文件?

实战:解决磁盘有空间,但是没法创建文件–>修复服务器的文件系统;

  • 面试:在公司中,遇到过棘手的文件是什么?

实战场景:

  • 在⼀台配置较低的Linux服务器(内存、硬盘⽐较⼩)的/data分区内创建⽂件时,系统提示磁盘空间不⾜,⽤df -h命令查看了⼀下磁盘使⽤情况,发现/data分区只使⽤了80%,还有1.9G的剩余空间,但是⽆法创建新的⽂件。当时使⽤的是root⽤户。服务器没有被⿊。
#首先查看一下分区状态
[root@Node1 ~]# df -h 
..............

#再查看一下inode情况
[root@Node1 ~]# df -i
Filesystem               Inodes IUsed   IFree IUse% Mounted on
/dev/mapper/centos-root 9703424 32301 9671123    1% /
............

#问题分析:
	-	如果一个目录中存在数量非常多的小字节缓存文件,占用的Block 不多,但是占用了很多的inode节点
	-	可以创建一个文件夹/bak/用于备份-->然后在删除文件,释放一些inode号
	-	可以再创建一个分区,把这些文件都存放在这个里边
	-	释放inode就可以了;

4.2、实战:修复文件系统

系统启动出现了control-D报错;如下图

通常的修复手段:

  • fsck -f -y /dev/sda1 #引导分区文件系统修复
    • -f:代表强制检查
    • -y:对于所有的交互式提问都是yes的回答
  • fsck -f -y /dev/sda3
  • reboot重启
#尝试强制修复分区
[root@Node1 ~]# fsck -f -y /dev/sda2

#然后重启
[root@Node1 ~]# reboot 

4.3、实战:xfs系统文件误删除修复

extundelete工具:是用于修复ext4文件类型的文件;需要提前备份

而xfs类型的文件就可以使用xfsdump(备份)与xfsrestore工具进行恢复

#安装xfsdump工具
[root@Node1 ~]# yum -y install xfsdump

xfsdump工具:

  • 作用:用于备份xfs文件系统的文件
  • 原理:
    • xfsdump按照inode顺序备份一个xfs文件系统
    • xfsdump的备份级别有两种:
      • 0:表示完全备份–>默认选项
      • 1-9:表示增量备份;
  • 选项:
    • -f:指定备⽂件⽬录 ;这里指定的就是恢复文件的位置,存放恢复后文件的路径
    • -L:设定标签
    • -M:设备标签
    • -s:备份单个⽂件 -s 不能直接跟路径
  • 注意事项:
    • 不支持没有挂载的文件系统,只能备份已经挂载
    • 需要使用root权限
    • 只能对xfs
    • 备份好的数据只能通过xfsrestore解析

实验思路:

  • 创建磁盘
#虚拟机-->设置-->添加硬盘-->一直下一步下一步-->然后下一步
  • 分区
#对sdb进行分区
[root@Node1 ~]# fdisk  /dev/sdb

#创建新分区
Command (m for help): n
Partition number (4-128, default 4): 
First sector (34-41943006, default 10487808): 
Last sector, +sectors or +size{K,M,G,T,P} (10487808-41943006, default 41943006): 
Created partition 4

#保存退出
Command (m for help): w
  • 格式化
  • 挂载使用
[root@Node1 ~]# mkfs.xfs  -f /dev/sdb4
meta-data=/dev/sdb4              isize=512    agcount=4, agsize=982975 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=3931899, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

#创建目录-->然后挂在使用
[root@Node1 ~]# mkdir /test
[root@Node1 ~]# mount /dev/sdb4  /test/
  • 创建数据
[root@Node1 ~]# cd /test/
[root@Node1 test]# echo 11111111 >> aa.txt
  • xfsdump备份
#备份数据-->-f指定备份的名字
[root@Node1 test]# xfsdump  -f /test/dump_sdb4 /dev/sdb4
.............
	#指定标签名字
please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb4  
.............
	#指定备份名
please enter label for media in drive 0 (timeout in 300 sec)
 -> sdb4
..........
	#看到以下代表备份成功
xfsdump:   stream 0 /test/dump_sdb4 OK (success)
xfsdump: Dump Status: SUCCESS

#查看一下备份好的数据
[root@Node1 test]# ls 
aa.txt  dump_sdb4
[root@Node1 test]# ls -l dump_sdb4 
-rw-r--r-- 1 root root 22200 Jul  5 14:28 dump_sdb4
  • 模拟删除数据
[root@Node1 test]# rm -rf aa.txt 
  • xfsrestore工具恢复
[root@Node1 test]# xfsrestore -f /test/dump_sdb4  /root/
xfsrestore:   stream 0 /test/dump_sdb4 OK (success)
xfsrestore: Restore Status: SUCCESS

#再查看数据是否存在即可
[root@Node1 test]# cat /root/aa.txt 
11111111

4.4、系统禁ping操作

简单地理解就是:你去ping一个IP;然后没有任何的返回记录;

  • 云主机:无法ping它的IP
  • 这个操作有临时的,和永久的操作
#正常情况下我们是可以ping通本机的
[root@Node1 ~]# ping -c2 -w2 192.168.75.131 
PING 192.168.75.131 (192.168.75.131) 56(84) bytes of data.
64 bytes from 192.168.75.131: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.75.131: icmp_seq=2 ttl=64 time=0.021 ms
.......

#临时进制ping通本机
[root@Node1 ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

#然后再ping发现就没法ping通
[root@Node1 ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 
[root@Node1 ~]# ping  127.0.0.1


#把这个规则写入配置文件可以达到永久禁ping操作
[root@Node1 ~]# vim /etc/sysctl.conf 

...........
	#添加这一行
net.ipv4.icmp_echo_ignore_all=1

[root@Node1 ~]# sysctl -p
fs.file-max = 51200
net.ipv4.icmp_echo_ignore_all = 1
[root@Node1 ~]# ping  127.0.0.1

#结合防火墙iptables也能实现
[root@Node1 ~]# iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

5、ACL权限说明

一个需求:

  • 一个项目不同部门;共同操作一个目录
    • liangjiawei:开发有开发的权限
    • zhangsan:又有不同的权限
    • lisi:也有对应的权限
#进入一个目录
[root@Node1 ~]# cd /test/
	#查看目录的权限
[root@Node1 test]# ls -ld /test/
drwxr-xr-x 2 root root 23 Jul  5 14:32 /test/

#创建一个测试用户组,然后把三个用户都丢入这个组里边
[root@Node1 test]# groupadd  test
[root@Node1 test]# useradd  -G test liangjiawei
[root@Node1 test]# useradd  -G test zhangsan
[root@Node1 test]# useradd  -G test lisi

#把测试目录也归纳到test组里边
[root@Node1 test]# chgrp  test /test/

#然后设置一个gid
[root@Node1 test]# chmod 2770 /test/
[root@Node1 test]# ll -d /test/
drwxrws--- 2 root test 23 Jul  5 14:32 /test/

这里就引入一个概念:

  • zhangsan可以读取内容,但是不能修改内容
  • 如果想要实现这个权限就可以引入一个acl的权限概念
    • zhangsan 加⼊组,删除权限
    • 2775 进去看⽂件,但是别的⽤户也能进去
    • 这里足以说明正常的权限是没法满足的;因此需要引入一个ACL权限的概念
  • ACL可以针对几个用法
    • 使⽤者 (user):可以针对使⽤者来设置权限;
    • 群组 (group):针对群组为对象来设置其权限;
    • 默认属性 (mask):还可以针对在该⽬录下在创建新⽂件/目录时,规范新数据的默认权限;

setfacl命令

  • 作用:设置某个目录/文件的ACL权限
  • 语法:setfacl + 选项 user:用户名:权限(rwx) 文件/目录
  • 选项:
    • -m:设置后续的acl参数给文件使用
    • -x:删除acl参数
    • -b:移除所有的参数
    • -k:移除默认的
    • -R:递归ACL权限
    • -d:设置默认的参数,只有对目录有效

getfacl命令

  • 作用:查看目录的规定

    语法:getfacl + 文件名/目录名

#接上面的实验
	#给zhangsan设置acl权限
[root@Node1 test]# setfacl  -m user:zhangsan:r-- /test/
	#查看一下acl权限
[root@Node1 test]# getfacl  /test/
getfacl: Removing leading '/' from absolute path names
# file: test/
# owner: root
# group: test
# flags: -s-
user::rwx
user:zhangsan:r--
group::rwx
mask::rwx
other::---

#给组设置acl权限
[root@Node1 test]# setfacl -m group:test:rwx /test/
[root@Node1 test]# getfacl /test/
getfacl: Removing leading '/' from absolute path names
# file: test/
# owner: root
# group: test
# flags: -s-
user::rwx
user:zhangsan:r--
group::rwx
group:test:rwx
mask::rwx
other::---

#给liangjiawei用户设置rw权限
[root@Node1 test]# setfacl  -m user:liangjiawei:rw- /test/

#清除test组的acl权限
[root@Node1 test]# setfacl -x group:test:rwx /test/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/611830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

01 云原生生态系统解读

云计算的技术革命 互联网时代的历程 云计算到底是什么 云计算历程 云平台的优缺点 优势 稳定性:云平台大量资源,分布式集群部署,保障服务永不宕机,几个9弹性扩展:按需索取,一键秒级开通需要的资源安全性&…

500道网络安全/WEB安全面试题合集!附答案解析

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的 Offer 之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年…

vue3+element-plus的后台管理系统模板 和 vue3+ant-design-vue的后台管理系统模板

项目介绍 规范:后台系统模板,按照企业级别的规范搭建的。 权限控制:通过后端返回的路由表(这个路由表是由前端这边在系统配好的然后存储在后端的)来动态渲染菜单和注册路由,同时也根据页面内的接口权限对页…

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据,用第三方软件比较合适,当然,用excel也可以批量提取网页内特定文字。请按照以下步骤操作: 1. 打开要提取的网页,并选中要提取的文字,例如一个表格里的数据。 2. 复制选中的文字。 …

你的 ChatGPT 使用姿势是错的!告诉你 4 个使用 ChatGPT 的小技巧

大部分人使用 ChatGPT 的方式都是错的,比如: 没有在提问时提供案例。忽略了可以通过设置 ChatGPT 的角色来控制它的行为。没有提供过多有效信息,而是让 ChatGPT 猜猜猜。 之所以会犯这些错误,是因为我们使用 ChatGPT 时还停留在…

HarmonyOS3 Stage模型介绍

Stage模型是HarmonyOS 3.1 Develper Preview(API 9)版本开始新增的模型,也是目前HarmonyOS主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这…

一款红队批量脆弱点搜集工具

功能 指纹识别:调用“三米前有香蕉皮“前辈工具,他的工具比finger好用 寻找资产中404,403,以及网页中存在的其他薄弱点,以及需要特定路径访问的资产 后续会把nuclei加进来 目前只有windows可以用 使用 第一次使用脚本请运行p…

Neo4j安装配置教程

目录结构 前言Neoj4简介安装JDKNeo4j安装步骤Neo4j下载解压Neo4j压缩包配置环境变量启动Neo4j执行命令报错,报错信息如下: 启动Neo4j,再次测试浏览器访问Neo4j参考链接 前言 安装所需配件网盘一键下载。以下描述中,官网下载均有描…

1、2、3类LSA解析

拓扑 需求 (1)企业核心机房,连接不同楼宇,实现不同楼宇互通; (2)企业核心机房设置为OSPF骨干区域; (3)其他办公楼宇为非骨干区域,通过路由器与…

Vue+SpringBoot打造超市商品管理系统(附源码文档)

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。 目录 一…

C++学习之旅 - 指针

文章目录 指针的基本概念指针的定义与使用指针占用的内存空间空指针野指针cont修饰指针指针&数组访问数组中第一个元素(访问&指针)如何访问数组中的第二个字节 指针和函数 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一…

offer收割机再现,接口测试常问面试题 (附答案),对标大厂面试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试面试题&am…

海外网红营销必备:品牌与海外红人合作的谈判技巧指南

随着社交媒体的飞速发展,海外网红已经成为品牌营销的热门选择。与知名红人合作,可以有效地扩大品牌影响力、提升产品认知度,并吸引目标受众。然而,与红人的谈判过程常常充满挑战,需要品牌营销人员具备一定的技巧和策略…

以太坊是匿名化的影子银行?将如何适应并影响传统金融?

以太坊经常被描述为传统金融权力的对立面。实际上,以太坊的目标并不是去颠覆传统金融领域,而试图去补充和改善它。未来,这两个系统将会有更多的交集。 多极世界中的中立性 以太坊并不是一种隐形的货币替代品和匿名的影子银行,目前…

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一,如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中,“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

浅入浅出 iptables 网络隔离原理

01 iptables简介 iptables ipfirewall(内核1.x时代) ipchains(内核2.x时代) iptables 网络协议栈 Link Layer 数据链路层的数据流向,根据mac寻址找到对应的网卡后向上进入网络层 Network Layer 网络层的数据流向&am…

实训第一天

目录 主流的关系数据库 非关系型数据库 Mysql的启动和停止 Mysql登录方式本地登录 远程登录 查看mysql数据库 创建数据库 使用数据库 删除数据库 Mysql结构化查询语句 mysql 数据类型 数值类型 字符类型 日期类型 唯一约束与主键约束 主流的关系数据库 mysql,db2,oracle&a…

Selenium自动化之弹窗处理

1.前言 我们在使用Selenium做Web自动化测试时,页面经常出现弹窗,如果不处理后续的测试脚本就无法正常运行,今天我们就带大家一起来学习如何处理Web页面上的弹窗。 2.Web页面弹窗的分类 弹窗通常有3种:Alert类型弹框、Confirm类…

人工智能之ChatGPT

前言 近日,美国OpenAI研发的聊天机器人程序ChatGPT爆火,相关话题多次引发热议。 ChatGPT是啥? 简单来说,ChatGPT是一个智能聊天机器人,但是它的功能却远不止聊天 利用机器学习算法,ChatGPT可以利用人工智…

SVN搭建ubuntu服务器过程(图文超详细)

目录 步骤0:搭建环境: 步骤一:下载subversion安装包 步骤二:创建版本库目录 步骤三:创建版本库 步骤四:修改SVN配置 步骤五:重启SVN服务 步骤0:搭建环境: 在ubuntu…