哈喽大家好,我是咸鱼

离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录、浏览记录等等)

所以我们就需要先把这些信息都删除,确保无法恢复之后才上交

即有些情况下我们不得不以一种确保无法恢复的方式从磁盘上擦除所有信息

许多小伙伴可能认为使用文件管理器或者 rm 命令删除数据可以保证安全性,但其实不然

因为 rm 命令或者文件管理器删除文件只是删除指向文件系统的指针(inode),所以原始数据仍可以使用

在 Linux 中,文件由指针部分(inode)和数据部分(data)组成

文件被删除的时候,文件对应的 inode 就被删除掉了,而文件的数据部分在 inode 被清除掉之后,就会被覆盖并写入新的内容

下面我们来看一下在 Linux 中如何安全地抹去磁盘数据吧!

PS:文章中提到的命令请谨慎使用!别怪咸鱼没提醒大家

shred

我们先来看看 shred 命令,它是 Linux 中保护私人数据的最佳方式之一

shred 功能是重复覆盖文件,只能使用专门的硬件并且极其困难地恢复数据,所以它经常被用来安全地擦除数据

shred 是 Linux 软件包 coreutils 的一部分,所以一般情况下是默认安装的

默认情况下,shered 会执行三次,在执行的时候,它会将伪随机数据写入设备。

例如我们要擦除 dev/sdb 设备

# -v 表示输出执行详细信息
shred -v /dev/sdb

前面我们说到,shered 会执行三次。但是执行三次所需的时间太长了,我们可以通过 -n 来设置执行次数

# 执行一次
shred -v -n 1 /dev/sdb



我们还可以添加更多选项来提高从磁盘删除数据的可靠性

shred -v -n 1 --random-source=/dev/urandom -z /dev/sdb
  • --random-source=/dev/urandom :表示指定使用随机生成的数据覆盖磁盘。Linux 的特殊文件 /dev/urandom 为内核的随机数生成器提供了一个接口
  • -z /dev/sdb:用 0 覆盖到目前为止的所有内容

wipe

看这个命令的名字就可以知道,这个命令用于擦除(wipe)磁盘中的数据

wipe 命令会重写磁盘扇区并刷新缓存,这使得想要恢复数据是一件极其困难或者说不可能的事

Linux 默认没有这个工具,我们需要先安装

# 以 CentOS 7 为例
yum install -y wipe

这个命令很简单,后面只需加上磁盘路径即可

wipe /dev/sdb

ps:现在好像 wipe 这个工具安装不了了,我试了多个镜像源然后 yum 安装的时候都说没有该软件包(安装了拓展源也不行),有知道原因的小伙伴欢迎给我留言

dd

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出



dd 命令是 Linux 中另一种常用的擦除磁盘的方法,尽管该命令并不像 shred和 wipe 那样明确地用于从磁盘中擦除数据,但它是 Linux 用户广泛使用的方法

例如下面的命令可以安全可靠地擦除 /dev/sdb 设备中的数据

dd if=/dev/urandom of=/dev/sdb bs=512 status=progress
  • if=/dev/urandom:输入文件,我们用 /dev/urandom 生成随机数据
  • of=/dev/sdb:输出文件,表示要擦除的磁盘
  • bs:块大小(以字节为单位)

当显示 “No space left on device”时,表示擦除成功完成

或者我们用 zero 字符串对磁盘进行覆盖,而不是生成随机数据

dd if=/dev/zero of=/dev/sdb bs=4096 status=progress

参考文章:https://linuxiac.com/best-ways-to-securely-erase-disk-in-linux/

Linux 中如何安全地抹去磁盘数据?的更多相关文章

  1. linux中如何用root去修改其他用户的密码

    linux中如何用root去修改其他用户的密码 昨天linux实验课,我有很多自己想摸索的东西.今天周五,本是下午一二节是编译的实验,可强烈的欲望让我今早就来实验室了,摸索吧,碰到了这个问题....  ...

  2. <实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

    [root@localhost~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于 ...

  3. vue3中使用axios如何去请求数据

    在vue2中一般放在created中,但是在vue3中取消了created生命周期,请求方式有两种 直接在setup中去获取数据 setup(props) { const data = reactiv ...

  4. Linux中利用extundelete恢复误删除的数据

    利用extundelete工具恢复磁盘误删除的数据 原理: 简单介绍下关于inode的知识.在Linux下可以通过"ls -id"命令来查看某个文件或者目录的inode值,例如查看 ...

  5. linux中 查看 CPU 内存负载 磁盘IO 网络IO情况

    1.压测时如何观察机器的CPU负载 先来看一个最最常用的监测linux机器性能的命令,就是top命令,直接在linux命令行只能够输入top指令就可以了,然后我们这里来给大家解释一下,top指令展示出 ...

  6. 在Linux中,当需要从磁盘读取块时,进程状态会发生什么变化?被封锁了吗?如果是这样,如何选择另一个流程来执行?

    当某个进程需要从磁盘中获取数据时,它实际上会停止在CPU上运行以让其他进程运行,因为该操作可能需要很长时间才能完成-至少需要5ms的磁盘寻道时间,而5ms就是1000万从程序的角度来看,CPU周期是永 ...

  7. linux中df和du查看磁盘大小不一致解决方法

    挂了一块50G到/data目录下#  df -h Filesystem Size Used Avail Use% Mounted on /dev/xvdb1 50G 46G 1.2G 98% /dat ...

  8. linux中root目录下下指定磁盘空间扩容

    1 查看当前磁盘情况 fdisk -l /dev/sda1 2048 6143 2048 83 Linux /dev/sda2 * 6144 1054719 524288 83 Linux /dev/ ...

  9. Linux中kettle连接hadoop并传数据(5)

    http://wiki.pentaho.com/display/BAD/Loading+Data+into+HDFS 新建job

  10. Linux中查看文件夹占用磁盘大小

    一.命令 ./ du -h ./ 查看当前目录占用空间 二.样例

随机推荐

  1. 解放计算力:使用并行处理提升python for循环速度

    Python 是一门功能强大的编程语言,但在处理大规模数据或复杂计算任务时,性能可能成为一个瓶颈.幸运的是,Python 提供了多种方法来提升性能,其中之一是利用并行处理来加速循环操作.本文将介绍如何 ...

  2. 前端使用CSS固定表头

    * { margin: 0; padding: 0 } .tableFixedTop { padding: 20px } .tableFixedTop table { border: 1px soli ...

  3. 【SpringBoot】整合Redis

    1.前言 最近公司在做项目,用到了redis,,发现自己一点都不会,然后就乘闲暇时间,自己学习一些redis相关的知识,在这里分享给像我一样的初学者. 2.我的项目结构: 2.1 pom.xml &l ...

  4. sql相关小知识—

    数据库系统达到了数据独立性是因为采用了三级模式结构 人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式.概念模式.内模式,有效地组织.管理数据,提高了数据库的逻 ...

  5. 【RabbitMQ】当队列中消息数量超过最大长度的淘汰策略

    [RabbitMQ]当队列中消息数量超过最大长度的淘汰策略 说明 最近在研究RabbitMQ如何实现延时队列时发现消息进入死信队列的情况之一就是当消息数量超过队列设置的最大长度时会被丢入死信队列,看到 ...

  6. MySQL到ClickHouse数据同步方案

    MySQL 同步到 ClickHouse的方案可以看下面的说明,选择合适最近的同步方法. 1. 对比结果概述 整体上,NineData(官网:www.ninedata.cloud )的数据复制功能在功 ...

  7. 树莓派命令——linux命令tips

    sudo python3 test.py 和 python3 test.py 完全不是一个东西,有时候是链接的编译器不同,环境是完全不同,sudo会调用一些无关资源,反而容易造成程序运行失败或浪费cp ...

  8. Linux 命令:gpasswd 管理用户组

    工作中经常需要将用户加入docker组,可执行如下操作: sudo gpasswd -a ec2-user docker newgrp # 不用加sudo gpasswd gpasswd -h Usa ...

  9. 【博客索引】Welcome!!

    欢迎来到 Daniel_yzy 的博客园 个人简介 初二,男,就读于长沙市一中双语实验学校. 爱好 OI,一生讨厌文化课. 当然,也是唯物主义无神论者. 已有 npy,要问是谁的话可以私下问. 博客索 ...

  10. Trackbar调色板

    我们将会建立一个简单的应用,显示我们指定的颜色.将会建立一个窗口,显示三个trackbar指定RGB三个颜色通道值.可以滑动trackbar来改变相应的颜色.默认情况下,初始颜色为黑色. cv2.ge ...