首页 > 系统相关 >Linux 中如何安全地抹去磁盘数据?

Linux 中如何安全地抹去磁盘数据?

时间:2023-10-11 19:12:54浏览次数:64  
标签:dev 安全 shred 擦除 sdb Linux 磁盘

哈喽大家好,我是咸鱼

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

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

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

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

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

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

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

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

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

shred

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

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

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

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

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

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

image

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

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

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

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

image

wipe

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

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

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

# 以 CentOS 7 为例
yum install -y wipe

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

wipe /dev/sdb

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

dd

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
image
dd 命令是 Linux 中另一种常用的擦除磁盘的方法,尽管该命令并不像 shredwipe 那样明确地用于从磁盘中擦除数据,但它是 Linux 用户广泛使用的方法

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

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

image

当显示 “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/

标签:dev,安全,shred,擦除,sdb,Linux,磁盘
From: https://www.cnblogs.com/edisonfish/p/17757941.html

相关文章

  • 软件测试|Linux三剑客之sed命令详解
    简介sed(StreamEditor)是一款流式文本编辑器,在Linux和类Unix系统中广泛使用。它的设计目的是用于对文本进行处理和转换,可以用于替换、删除、插入、打印等操作。sed命令通过逐行处理文本,允许您使用简单的命令来编辑大量文本数据。本文将详细介绍sed命令的基本用法和一些常......
  • 软件测试|Linux三剑客之grep命令详解
    简介grep是一款在Linux和类Unix系统中广泛使用的文本搜索工具。它的名字来源于GlobalRegularExpressionPrint(全局正则表达式打印),它的主要功能是根据指定的模式(正则表达式)在文本文件中搜索并打印匹配的行。grep非常强大且灵活,可以用于日志分析、文件过滤、代码搜索等多......
  • 软件测试|Linux 基础教程:创建和删除目录
    简介在Linux系统中,创建和删除目录是非常常见的操作。目录是用于组织文件和其他目录的一种结构,它们是组织文件系统的重要组成部分。本文将介绍如何在Linux系统中创建和删除目录。创建目录在Linux中,可以使用mkdir命令来创建一个新的目录。mkdir是MakeDirectory(创建目......
  • 软件测试|Linux三剑客之awk命令详解
    简介awk是一种强大的文本处理工具,在Unix和类Unix系统中广泛使用。它允许您在文本文件中进行复杂的数据处理和格式化输出。awk的名字是根据它的三位创始人Aho、Weinberger和Kernighan姓氏的首字母命名的。本文将详细介绍awk命令的基本用法和一些常见的用例。awk基本语......
  • 软件测试|Linux下Python安装配置指南
    在Linux中安装Python是一个简单而且重要的过程,因为Python是一种广泛使用的编程语言,许多系统工具和应用都依赖于它。在本文中,我将详细介绍如何在Linux系统中安装Python。请注意,在本文中,我将以Centos为例,但是这些步骤大多数也适用于其他基于RedHat的发行版。对于其他发行版,请使用......
  • linux 服务器 多网口判断网卡名字和实际网卡口顺序 对应关系
    #!/bin/bashmac_addresses=($(dmesg|grep"eth"|grep"PCIe"|awk-F'''{print$8}'))count=0formacin"${mac_addresses[@]}";do((count++))interface=$(ifconfig|grep-B4"$mac"|gr......
  • linux 安装python django pip 遇到的问题
    Python解决SSL不可用问题解决方案:首先要明白python版本需要和openssl的版本需要相对匹配的,在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl,linux自带的openssl版本过低。1、查看liunx系统的openssl版本信息:opensslversion......
  • 麻烦的安全
    写程序时,经常遇到一些安全相关的需求,和业务逻辑无关,但偶尔碰到一次也是一头雾水。总结一下原理,原理记住了,剩下的就是敲命令和排查问题了。摘要:将一个A字符串映射出另一个唯一的B字符串,A字符串每次用同样的算法都能得到B字符串,但B字符串计算不出(还原不出)A字符串。对称加密:把一......
  • Linux服务器异地备份数据库脚本
    使用Cron作业调度工具来创建一个定时任务,以在每日凌晨1点的时候运行备份脚本。以下是在CentOS7上设置定时备份任务的一般步骤:1.编写备份脚本:创建一个备份脚本,用于连接远程MySQL数据库并执行备份操作。你可以使用mysqldump命令来备份数据库。这是一个简单的示例脚本:#!......
  • Linux批量替换文件内容
    示例方法:Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。用sed命令可以批量替换多个文件中的字符串。sed-i"s/原字符串/新字符串/g"`grep原字符串-rl所在目录`例如:我要把mahuinan替换为huinanma,执行命令:sed-i"s/mahui......