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

 更新时间:2023年10月12日 11:46:44   作者:咸鱼运维杂谈  
离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息,所以我们就需要先把这些信息都删除,确保无法恢复之后才上交,下面我们来看一下在 Linux 中如何安全地抹去磁盘数据吧

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

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

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

许多小伙伴可能认为使用文件管理器或者 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

以上就是详解Linux中如何安全地抹去磁盘数据的详细内容,更多关于Linux抹去磁盘数据的资料请关注脚本之家其它相关文章!

相关文章

  • ubuntu下chorme提示输入秘钥环的解决方法

    ubuntu下chorme提示输入秘钥环的解决方法

    这篇文章主要给大家介绍了ubuntu下chorme提示输入秘钥环的解决方法,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • Bash中尖括号的更多使用方法

    Bash中尖括号的更多使用方法

    这篇文章主要给大家介绍了关于Bash中尖括号的更多使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Azure给ubuntu虚拟机挂载数据盘的详细步骤

    Azure给ubuntu虚拟机挂载数据盘的详细步骤

    这篇文章主要介绍了Azure给ubuntu虚拟机挂载数据盘的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 在Linux系统上使用nmcli命令配置各种网络的操作方法(有线、无线、vlan、vxlan、路由、网桥等)

    在Linux系统上使用nmcli命令配置各种网络的操作方法(有线、无线、vlan、vxlan、路由、网桥等)

    你是否会遇到在不同的Linux系统中配置网络时,修改的配置文件和语法都不一样的烦恼呢?对于这种情况,我们可以使用NetworkManager工具在不同的系统上进行统一语法的配置与管理,本文给大家介绍了在Linux系统上使用nmcli命令配置各种网络的操作方法
    2025-03-03
  • apache-zookeeper-3.7.1 安装部署教程

    apache-zookeeper-3.7.1 安装部署教程

    这篇文章主要介绍了apache-zookeeper-3.7.1 安装部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • ubuntu mysql更改tmp路径的方法

    ubuntu mysql更改tmp路径的方法

    因为mysql经常要把文件定入tmp目录,而tmp的目录为/tmp,为了提高性能,所以考虑更改tmpdir目录为/run/shm,即使用内存来存储。下文给大家介绍ubuntu mysql更改tmp路径的方法,一起看看吧
    2016-10-10
  • 在Ubuntu上运行Jar包的操作步骤

    在Ubuntu上运行Jar包的操作步骤

    Jar(Java Archive)文件是一种归档文件格式,用于聚合多个Java类文件、相关的元数据和资源(如图像和配置文件)到单一文件中,Jar包不仅是发布Java应用程序的标准方式,也是库分发的常见形式,本文介绍了如何在Ubuntu上运行Jar包,需要的朋友可以参考下
    2024-06-06
  • Linux文件目录结构(小白版)

    Linux文件目录结构(小白版)

    这篇文章主要介绍了Linux文件目录结构(小白版),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 快速判断Linux系统是Ubuntu还是CentOS的方法

    快速判断Linux系统是Ubuntu还是CentOS的方法

    要确定你的Linux系统是基于Ubuntu还是CentOS,可以通过几种不同的方法来进行判断本文给大家介绍了一下常用的判断方法,需要的朋友可以参考下
    2025-06-06
  • Linux 下的五种 IO 模型详细介绍

    Linux 下的五种 IO 模型详细介绍

    这篇文章主要介绍了Linux 下的五种 IO 模型详细介绍的相关资料,需要的朋友可以参考下
    2016-10-10

最新评论