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


    哈喽大家好,我是咸鱼

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

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

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

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

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

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

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

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

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

    shred

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

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

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

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

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

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

    image

    前面我们说到,shred 会执行三次。但是执行三次所需的时间太长了,我们可以通过 -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/

  • 相关阅读:
    Python 序列
    java毕业生设计在线点餐系统计算机源码+系统+mysql+调试部署+lw
    Shiro和Spring Security对比
    带你刷(牛客网)C语言百题(第四天)
    Linux文件,目录权限管理
    c++二叉树遍历-从递归法到迭代法的前世今生
    Tailor:一键式视频智能处理,轻松打造精彩视频!
    2024年阿里云2核4G配置服务器测评_ECS和轻量性能测评
    对齐属性:align-content详解(个人学习记录用)
    R语言使用stack函数将多个向量组合成一个大向量,并同时创建一个平行因子来标识每个值的原始向量组、这样可以将数据组织成方差分析需要的格式
  • 原文地址:https://www.cnblogs.com/edisonfish/p/17757941.html