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

linux,如何,安全,磁盘,数据 · 浏览次数 : 33

小编点评

**安全地擦除磁盘数据的方法** **1. 使用shred 命令** - shred 命令是 Linux 中保护私人数据的最佳方式之一。 - 它会重复覆盖文件,只能使用专门的硬件并且极其困难地恢复数据。 **2. 使用wipe 命令** - wipe 命令可以安全地擦除磁盘数据。 - 它会重写磁盘扇区并刷新缓存,这使得想要恢复数据是一件极其困难或说不可能的事。 **3. 使用dd 命令** - dd 命令可以安全地擦除磁盘数据。 - 它会使用随机生成的数据覆盖磁盘。 **注意事项** - 在擦除数据之前,请确保您有足够的写入空间。 - 不要在重要的文件上执行擦除操作。 - 请使用谨慎的命令行工具。

正文

哈喽大家好,我是咸鱼

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

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

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

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

与Linux 中如何安全地抹去磁盘数据?相似的内容:

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

哈喽大家好,我是咸鱼 离过职的小伙伴都知道,离职的时候需要上交公司电脑,但是电脑里面有许多我们的个人信息(聊天记录、浏览记录等等) 所以我们就需要先把这些信息都删除,确保无法恢复之后才上交 即有些情况下我们不得不以一种确保无法恢复的方式从磁盘上擦除所有信息 许多小伙伴可能认为使用文件管理器或者 rm

[转帖]如何在 Linux 中使用 SCP 安全地传输文件

https://linux.cn/article-15377-1.html 在网络上文件传输可以通过各种不同的方式和协议来完成。远程复制文件最常用的协议是 Rsync、SCP 和 SFTP。在本文中,我们将了解什么是 SCP 以及如何在 Linux 和类 Unix 操作系统中使用 SCP 在本地和远

[转帖]理解开源安全中的林纳斯定律

https://linux.cn/article-15344-1.html 林纳斯定律Linus's Law即“只要有足够多的眼睛关注,任何漏洞都无处隐藏given enough eyeballs, all bugs are shallow”。那么林纳斯定律是如何应用于开源软件安全的呢? 这篇文章讨

[转帖]如何在 CentOS 中添加、启用和禁用一个仓库

https://linux.cn/article-10219-1.htmlyum repolistyum-config-manager --enable --disable 在基于 RPM 的系统上,例如 RHEL、CentOS 等,我们中的许多人使用 yum 包管理器来管理软件的安装、删除、更新、

[转帖]如何用python连接Linux服务器

1.安装paramiko库 pip install paramiko 2.使用paramiko库连接linux #导入库 import paramiko #创建一个sshclient对象 ssh = paramiko.SSHClient() #允许连接不在know_host中的主机 ssh.set_

systemctl 命令设置开机自启动失败

哈喽大家好,我是咸鱼。今天跟大家分享一个关于 Linux 服务(service)相关的案例 案例现象 我在 3 月 31日的时候发表了一篇《shell 脚本之一键部署安装 Nginx》,介绍了如何通过 shell 脚本一键安装 Nginx 我脚本中执行了 Nginx 开机自启动的命令,当我使用 sy

网络诊断工具traceroute的使用

在 Linux 系统中,traceroute 是一个网络诊断工具,用于确定数据包从你的计算机到目标主机(如一个网站或远程服务器)所经过的路由路径。 如果你的系统中没有安装 traceroute,你可以通过包管理器来安装它。 Debian/Ubuntu 及其衍生版 sudo apt-get updat

【转帖】Linux中如何取消ln链接?(linuxln取消)

https://www.dbs724.com/163754.html Linux系统使用ln命令可以快速创建链接,ln链接是指把文件和目录链接起来,当改变源时可以快速地改变整个目录下的文件和目录。有时候,某些文件或者目录链接起来不是我们需要的,我们需要使用Linux取消ln链接命令。下面就来简单介绍

面试题:Linux 系统基础提问 (一)

Linux系统中如何管理用户和组? Linux系统中用户和组的管理通常包括以下几个方面: 1、创建用户和组: 使用useradd和groupadd命令创建新用户和新组。 2、修改用户和组信息: 使用usermod和groupmod命令来修改用户和组的信息。 3、删除用户和组: 使用userdel和g

Linux系统中如何查看磁盘情况

Linux不像windows系统那样方便的图形界面,特别是作为服务器使用的时候,只有命令行可以使用。 我有个云服务器平时用来做一些数据分享用的,最近想看看磁盘和其中文件的占用情况,于是搜索并学习了一些查看磁盘空间信息的命令,命令虽然简单,但对我自己来说还是有些新的东西值得记录。 1. df 首先,登